吉安建设公司网站,石家庄网站快速优化排名,wordpress 文章首标点,本地网站建设教程1.int * p NULL;和*p NULL的区别
1 .int * p NULL
int *pNULL#xff1b;定义一个指针变量p#xff0c;其指向的内存里面保存的是int类型的数据#xff1b;再定义变量p的同时把p的值设置为0x00000000#xff0c; 而不是把*p的值设置为0x00000000
2.*p NULL
int i 10NULL;和*p NULL的区别
1 .int * p NULL
int *pNULL定义一个指针变量p其指向的内存里面保存的是int类型的数据再定义变量p的同时把p的值设置为0x00000000 而不是把*p的值设置为0x00000000
2.*p NULL
int i 10
int * p i
*p NULLint i 10; int * p i *p NULL p指向的内存由原来的10变为了0 而p本身的值(内存地址)没变
2.a和a的区别 int a[5] { 1,2,3,4,5 };int *ptr (int *)(a 1);printf(%d,%d, *(a 1), *(ptr - 1));a a单独存在为数组a的首地址 a1a为数组的首地址数组的首地址加上 数组元素个数 sizeofint即下个数组的首地址 所以两个数相差20个bite a:数组首元素地址a[0] a1:数组下一个元素的首地址 值相同意义不同 所以两个数相差4个bite a1没有单独放在括号内部降级变为首元素地址 即为数组下一个元素首地址 ptr-1):ptr指向的是a[5],并且ptr是int*型的,所以他减1指向a[4]