一.指针的定义
类型名 *指针变量名;
类型决定指针的大小,可用sizeof运算符去计算大小。
二.指针的赋值
1.使用地址进行赋值,数据类型与指针类型需一致
int iNum = 0x64;
int *ptr;
ptr = &iNum ;
2.利用指针之间相互赋值,指针类型必须一致
int *ptr1,*ptr2;
*ptr1 = *ptr2;
三.指针的本质
指针的本质就是指向某个内存地址的标记,指针交换其实就是交换相互指向的内存地址。
四.指针的偏移
1.指针的单个偏移
int array[10]={0,1,2,3,4,5,6,7,8,9};
int *ptr;
ptr=&array[0];//指针指向数组的第一数据
printf("%d\n",*ptr); //输出值为0,指向array[0]
printf("%d\n",*(++ptr);//输出值为1,指向array[1],使用++ptr为了ptr加1
以上面代码为例,指针的偏移量为int型的大小,可以让指针的加减去读取数组的数据。
2.指针的多个偏移
(1)数组长度的偏移
int temp[5];
char *p = &temp;
char *q = temp;
在这里,p和q的值是一样的,含义却不一样,前者是指向数组的指针,而后者是指向该数组中下标为0的元素的指针。因此p&