- 有关指针的数据类型小结
记忆诀窍:
容易混淆的几个int *p[n] 、int (*p)[n],其中int *p[n]是一个数组,数组的元素是指针;int (*p)[n]是个指针,是一个指向二维数组的指针或者分解为长度为n的一维数组。
2. 指针运算小结
- 指针变量加(减)一个整数:
如 p++、p--、p+i、p-i 等,指的是将该指针的原值和它指向的变量所占的内存管理单元字节数加(减)。 - 指针变量赋值:将一个变量的地址赋给一个指针变量
如: p=&a;将变量a的地址赋值给p;
p=array;将数组array的首地址赋值给p;
p=&array[i];将数组array的第i个元素的地址赋值给p;
p=max; max是已定义的函数,将max的入口地址赋值给p;
p1=p2; p1和p2都是指针变量,将p2的值赋值给p1,也就是将p1指向到p2所指向的存储空间。 - 指针变量可以有空值,即该指针变量不指向任何变量: p=NULL;
- 两个指针可以相减:前提是两个指针必须指向同一个存储空间(比如指向同一个数组的元素),则两个指针只差就是两个指针之间的元素个数。
指针在C语言是个重要的内容,目前对这个理解还是比较浅,只能整理出平时容易混淆的概念,多加区别!