赋值表达式中不同数据类型相互赋值的问题
为什么这个编译能通过的啊 int main(int argc, char* argv[]) { char **p=0; char **q=p; return 0; } 而这个就不行啊 int main(int argc, char* argv[]) { char **p=1; char **q=p; return 0; } |
[此贴子已经被knocker于2005-12-11 12:48:24编辑过]
p的确是个int 数值,其实,任意型式的数据在内存中都以0,1表述。
同样的内存单元
1111111111111111 如果定义为int型,它是表示多少?
如果定义为unsigned int 它又是表示多少?
如果定义为float它又是表示多少?
。。。。。。。
理解上面的这个问题有助你理解本问题为什么要强制转化的原因。