c中定义一个(int a)变量具有二义性,本质上是分配一个地址空间,在里面存了一个值。
为了避免歧义,c规定了a是值,&a是地址空间。
指针指向一个地址。
这里*a代表指向的那个地址里存的值,a是指向的那个地址。
void tes(int *i){
*i=2;
}
int main(int argc, char *argv[]){
int a=4;
int* s = &a;
tes(s);
printf("%d\n",*s);
printf("%d\n",s);
}
上面代码通过传入地址改变传入的值,输出*s为2,s为地址。
版权声明:本文为qq_21773503原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。