C语言的问题~~~~

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:41:31
清华大学的书李春葆出的书,《C语言习题与解析,A级》看不懂。请高手指教
scanf()函数中格式控制,后面应当是变量地址,而不应该是变量名。
什么是变量地址?什么是变量名?怎么样区分?我咋看着是一回事啊?
请高手指教!!

楼主,其实,C语言里面只有变量,根本没有什么指针,指针怎么了,指针也是变量。变量是一个“名化”(就是有名字)的存储空间。一个变量具有二重属性,一是值,二是地址(物理地址,就是内存中的位置)。变量名与值绑定在一起,通过变量名我们可以访问存放在它所代表的这个存储空间里的值,可以把新的值放进它所代表的这个存储空间(同时原来的值被覆盖掉)。而变量的另外一个属性,地址,则是隐性的,C语言里面我们需要在变量名前面使用取地址运算符&来获取。比如说:
int a, b;声明了一个变量,我们可以写a = 3(把3放进a所代表的存储空间里面),我们可以写b = a + 2;我们把a里面的值取出来加2后得到的值5放进b所代表的存储空间里面。如果我们想知道a所代表的存储空间到底在内存中的什么位置,那我们就要写&a,这个时候&a就把a所代表的内存空间的位置,就是变量a的地址取出来了。至于为什么我们需要变量的地址,你学到后面的指针就知道了。

不过,楼主,你不妨记住我在这儿给你说的每一句话,尤其是开头的那两句,现在不明白不要紧,时候到了你自然会明白,到那时候你就知道此乃金玉良言!

int a;/*定义变量a*/
int *p;/*定义指针 看看后面的几章的指针 (先借用下)*/
p=&a;/*&为取地址运算符,既变量 a在内存中的物理地址 */
想要弄明白你就好好学习后面的指针哈

int x;
scanf("%d",&x);
x:是变量,也就是在程序中可以改变的值。
&:是取地址符,也就是x在内存中存的位置。
所以,x是变量名,而在x前加上&符号就是变量x的地址。

变量地址是存放变量的物理地址
如果把书比作变量的话,那么抽屉就是变量地址