C语言中*与&的用法与区别

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为地址。

你可能感兴趣的:(c语言)