指针运算

xiaoxiao2021-02-28  166

#include<stdlib.h> #include<stdio.h> //若有p=a(p指向数组a),则: //p++(或p+=1),表示p指向下一元素 //(*p)++表示p所指向的元素值加1,而非指针值加1 void main() { int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < 10; i++) { printf("%x,%d\n", &num[i], num[i]); } int *p = num; //printf("%x\n", p); //printf("%x\n", p++); //printf("%x\n", p); //同样的优先级,计算方向为从右向左,*(p++)仍然是后自增 //*p++与*(p++)等价,有同样的优先级,结合方向为自右向左 //*(p++)与*(++p),前者是先取*p的值,然后p值加1(先根据地址取值,然后地址加1(指向下一个元素)),相当于a[i++];后者是先使p加1,再取*p,相当于a[++i] printf("%d\n", *p++); p = num; printf("%d\n", *(p++)); //(*p)++; //根据地址取出变量的值自增 //printf("%d\n", (*p)++); //printf("%d\n", ++(*p)); //printf("%d,%p\n", num[0], num); system("pause"); }
转载请注明原文地址: https://www.6miu.com/read-18162.html

最新回复(0)