指针学习笔记(3)——小结
2015-10-29 00:27
176 查看
1. 形式如(*)p 的p表示指向什么的指针变量,例如:
int * p: p为指向执行数据的指针变量
int (*P)
: p为指向包含n个元素的一维数组的指针变量,即数组指针
int (*p)(): p为指向函数的指针变量,该函数返回一个整形
int **p: p为指向一个整形数据的指针变量
2. 另外:
int *p
: p为一个数组,一个指针数组,它由n个指向整型数据的指针元素。【主要使用在传递多个指针变量】
int *p(): p为一个函数,该函数返回一个指针,该指针指向整形数据
3. ‘\0’ 的ASCII代码为 0。
4. C语言中可以使用字符数组存放一个字符串或使用字符指针指向一个字符串,从而访问一个字符串。
5. 数组可以在定义时整体赋值,但是不能在赋值语句中整体赋值,而字符指针可以将一个字符串的首地址传给指针从而指向另一个字符串,这一点,通过数组名也不能实现,因为数组名虽然是地址,但它是常量,它的值不能改变的。
6. 通过字符数组名或字符指针变量可以输出一个字符串,而对一个数值型数组则不能用数组名输出它的全部元素。
《C语言程序设计》
指针常量:本质是一个常量,这个常量的类型是指针。也就是说这个指针是一个常量,所以这个指针本身的值不能改变,但是其指向的地址的值可以改变。
常量指针:本质是一个指针,指向的是常量。即这个指针指向的地址的值不能修改,但是指针本身可以改变,可以指向不同的地址。
a) 一个整型数
b)一个指向整型数的指针
c)一个指向指针的的指针,它指向的指针是指向一个整型数
d)一个有10个整型数的数组
e) 一个有10个指针的数组,该指针是指向一个整型数的
f) 一个指向有10个整型数数组的指针
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to aninteger
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointersto integers
f) int (*a)[10]; // A pointer to an arrayof 10 integers
g) int (*a)(int); // A pointer to afunction a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10pointers to functions that take an integer argument and return an integer
int * p: p为指向执行数据的指针变量
int (*P)
: p为指向包含n个元素的一维数组的指针变量,即数组指针
int (*p)(): p为指向函数的指针变量,该函数返回一个整形
int **p: p为指向一个整形数据的指针变量
2. 另外:
int *p
: p为一个数组,一个指针数组,它由n个指向整型数据的指针元素。【主要使用在传递多个指针变量】
int *p(): p为一个函数,该函数返回一个指针,该指针指向整形数据
3. ‘\0’ 的ASCII代码为 0。
4. C语言中可以使用字符数组存放一个字符串或使用字符指针指向一个字符串,从而访问一个字符串。
5. 数组可以在定义时整体赋值,但是不能在赋值语句中整体赋值,而字符指针可以将一个字符串的首地址传给指针从而指向另一个字符串,这一点,通过数组名也不能实现,因为数组名虽然是地址,但它是常量,它的值不能改变的。
6. 通过字符数组名或字符指针变量可以输出一个字符串,而对一个数值型数组则不能用数组名输出它的全部元素。
《C语言程序设计》
指针常量:本质是一个常量,这个常量的类型是指针。也就是说这个指针是一个常量,所以这个指针本身的值不能改变,但是其指向的地址的值可以改变。
常量指针:本质是一个指针,指向的是常量。即这个指针指向的地址的值不能修改,但是指针本身可以改变,可以指向不同的地址。
一个经典的笔试题
用变量a给出下面的定义:a) 一个整型数
b)一个指向整型数的指针
c)一个指向指针的的指针,它指向的指针是指向一个整型数
d)一个有10个整型数的数组
e) 一个有10个指针的数组,该指针是指向一个整型数的
f) 一个指向有10个整型数数组的指针
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to aninteger
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointersto integers
f) int (*a)[10]; // A pointer to an arrayof 10 integers
g) int (*a)(int); // A pointer to afunction a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10pointers to functions that take an integer argument and return an integer
相关文章推荐
- 关于指针的一些事情
- C# Pointer指针应用实例简述
- C++智能指针实例详解
- C++指向函数的指针实例解析
- 关于c语言指针的两处小tip分享
- 浅析iterator与指针的区别
- 探讨C++中数组名与指针的用法比较分析
- 深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
- 详解C++中的指针、数组指针与函数指针
- C++中字符串以及数组和指针的互相使用讲解
- C语言安全之数组长度与指针实例解析
- C++中指向对象的常指针与指向常对象的指针详解
- 指向变量的常指针与指向常变量的指针详细解析
- C#通过指针实现快速拷贝的方法
- php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
- C#通过指针读取文件的方法
- C语言指针学习经验总结浅谈
- C++交换指针实例
- C/C++中指针和引用之相关问题深入研究
- C++基础入门教程(四):枚举和指针