请问这句话该怎么理解?如果赋给了会有什么后果?
----------------解决方案--------------------------------------------------------
指针变量中只能存放地址,不能将一个非地址类型的数据(如常数等)赋给一个指针变量
----------------解决方案--------------------------------------------------------
恩
[此贴子已经被作者于2006-1-17 20:14:55编辑过]
----------------解决方案--------------------------------------------------------
int a[20];
int *p;
p=a;可以啊!不太懂那些名词?等高手解释
----------------解决方案--------------------------------------------------------
指针变量赋值
p = &a; 变量a的地址赋给p,即指针p指向a
p = array; 数组array首地址赋给p
p = &array[i]; 数组元素array[i]的地址赋给p
p = max; 函数max的入口地址赋给p
p1 = p2; 指针p2的值赋给指针p1,即p1、p2所指的数据相同
----------------解决方案--------------------------------------------------------
解释的很明白啊 呵呵
我明白却不会说那些名词
----------------解决方案--------------------------------------------------------
指针真是可以把人给弄晕...我现在还对指针晕忽着呢 改天好好看看
----------------解决方案--------------------------------------------------------
首先要弄明白三个概念:变量名,地址,变量值。
举个例子
int a=3;
a是变量名;3是值;FFFFFF(乱写的,可以用&a得出)是地址;
值和地址是紧密联系的,只是存放在地址中的,而a只是为了程序员便于记忆给出的,想象如果变成的时候要用每个值的地址,那是多么恐怖!既然a只是个名字,那么我可以叫李四,也可以叫小李,也就是说变量也可以有很多名字,怎么办到呢?就是把变量名和地址联系起来,这样便一起就可以通过变量名寻找地址,从而取出地址存的值了。
具体来说:
int a=3;
int*ptr=a;
ptr是储存地址的值(不是变量值!),所以通过*运算就可以得出新的变量别名*ptr,这里的*是运算符号。
这个时候地址上就有两个名字了:a和*ptr
同样我们也可以直接把地址传递给指针:
int a=3;
ptr=&a
&是运算符,通过&a就可以得到a这个变量名所代表的值的地址了。
我们再来回忆一次:
3是值;
&a是地址值,通过&a可以找到3(值);
a是变量名,通过a可以寻找到&a(地址),然后找到3(值);
ptr是地址值,通过ptr可以寻找到3(值);
*ptr是变量名,通过*ptr可以寻找到ptr(地址),然后找到3(值);
我自己的一些理解,希望对你能有帮助!
[URL=http://blog.csdn.net/bestee]欢迎光临我的blog给我留言或者交换连接[/URL]
[此贴子已经被作者于2006-1-19 1:17:49编辑过]
----------------解决方案--------------------------------------------------------