初学指针,明白了&运算符是取地址,而*运算符是取地址中的实际值。
那为什么可以使用int *p = &i;
这样把地址赋给实际值的操作?
int i = 10;
int *p;
p = &i;
printf("%d", *p);
与
int i = 10;
int *p = &i;
printf("%d", *p);
所得*p的值是一样的,这又是什么原因?
那为什么可以使用int *p = &i;
这样把地址赋给实际值的操作?
int i = 10;
int *p;
p = &i;
printf("%d", *p);
与
int i = 10;
int *p = &i;
printf("%d", *p);
所得*p的值是一样的,这又是什么原因?
都没有说到点上
* 这个东西含义非常多
在四则混合运算中它是乘号,在*p里它代表"解地址",而int *里它是类型的一部分,代表定义一个一级指针,int **则是二级指针,以此类推
此外,在正则表达式中*还代表匹配任意多个前导字符
你不要一见到*就以为是解地址操作