C语言的问题~~~~
清华大学的书李春葆出的书,《C语言习题与解析,A级》看不懂。请高手指教
scanf()函数中格式控制,后面应当是变量地址,而不应该是变量名。
什么是变量地址?什么是变量名?怎么样区分?我咋看着是一回事啊?
请高手指教!!
参考答案:楼主,其实,C语言里面只有变量,根本没有什么指针,指针怎么了,指针也是变量。变量是一个“名化”(就是有名字)的存储空间。一个变量具有二重属性,一是值,二是地址(物理地址,就是内存中的位置)。变量名与值绑定在一起,通过变量名我们可以访问存放在它所代表的这个存储空间里的值,可以把新的值放进它所代表的这个存储空间(同时原来的值被覆盖掉)。而变量的另外一个属性,地址,则是隐性的,C语言里面我们需要在变量名前面使用取地址运算符&来获取。比如说:
int a, b;声明了一个变量,我们可以写a = 3(把3放进a所代表的存储空间里面),我们可以写b = a + 2;我们把a里面的值取出来加2后得到的值5放进b所代表的存储空间里面。如果我们想知道a所代表的存储空间到底在内存中的什么位置,那我们就要写&a,这个时候&a就把a所代表的内存空间的位置,就是变量a的地址取出来了。至于为什么我们需要变量的地址,你学到后面的指针就知道了。
不过,楼主,你不妨记住我在这儿给你说的每一句话,尤其是开头的那两句,现在不明白不要紧,时候到了你自然会明白,到那时候你就知道此乃金玉良言!