c语言 &a和a的区别搞不明白?

2025-03-22 16:14:46
推荐回答(4个)
回答1:

首先,a是一个变量,储存着值。&a是常量,是变量a的内存地址。一般的&a是用来赋值给指针的(int ×p=&a ;),或者是作为函数的参数传递(地址传递)。比如scanf中:scanf("%d",&a);

如果输出,也并不是按照你说的那样,比如a是字符型:putchar(a) ;a是整形:printf(“%d”,a) ;
所以输出是用a还是&a,要看函数的参数类型是变量还是指针。

回答2:

当然不是,首先你得区分清楚a的属性,它是什么类型的,取他的值,不管是什么类型的,都是a本身.而&a表示的是取得是a的内存地址.因为不管a是什么类型的,操作系统都会给这个变量分配一个内存中存放的地址,它是一串用十六进制表示的地址.

回答3:

不是的 在定义a的时候系统自动给a分配一个地址 a代表的是这个地址里面的值 而&a代表 取a的地址

回答4:

a表示的是取变量的值,&a表示该变量在内存中存储的地址。不管是那种类型的,a都表示值,&a表示地址。