指针:一种数据类型,储存一个地址,地址就是指针,指针就是地址
32位:4字节 64位:8字节
int array[]={1,2,3,4,5,6,7,8,9,0};
int* pa=array;
即 printf("%d\n", *array);
printf("%d\n", *pa);
打印出来都是1
pa++; 让指针向后偏移
即此时指针指向数组为2的位置,此时
printf("%d\n",*pa);
打印出来结果为2
pa+3 同上
int* pa1=array;
int* pa2=array+3;
pa1+pa2:没啥意义
pa2-pa1:两个指针之间隔了多少个元素
-----------分界线--------------------------
const修饰东西:
const int* p=&a;
int* const p=&a;
int const p=&a;
左定右值: const放在* 的左边:指针指向不能修改
const放在*的右边,p的值不能通过指针来修改
----------分界线----------------------------------------
数组指针、指针数组、函数指针:
举个栗子:
数组指针:int(p)[5];
指针数组:int p[5];
函数指针:
int (*f)(int left,int right)
{
乌漆嘛黑一些操作;
return 0;
}
--------------分界线--------------------------------------------
数组名:
只有两种情况表示数组本身,其他时候都表示首元素地址:
&array和sizeof(array)表示数组本身