读书人

关于C语言整型指针和字符型指针的困惑

发布时间: 2012-09-27 11:11:17 作者: rapoo

关于C语言整型指针和字符型指针的困惑,望高人指点一二
main()
{
int *i;
char *str;
*i=100;
str="Good";
...
)
为什么整型指针和字符型指针在赋值的时候有一个*号的区别?为什么会有这样的规定呢?定这个规定的人当时是出于那点考虑,而不把它们以相同的方式统一规定呢?

[解决办法]
因为100是个立即量,而"Good"本身是个数组,他同时等价于指针,100的类型可以等价于int, 而要知道"Good"的类型不是char,而是const char*

你*i=100是错误的,因为你没有分配内存
[解决办法]

探讨
"为什么整型指针和字符型指针在赋值的时候有一个*号的区别?"

先不说你程序的正确性

*是解引用

整形指针用*是因为要为指向指向的空间赋值,要解引用,为单个int 赋值

而字符型指针也是可以用*的 这样解引用到字符指针指向的一个char空间单元 如果赋值的话 为单个char赋值

而其不用*的话,是说明这个指针指向了某个字符串的首地址.

是你理解歪了

读书人网 >C语言

热点推荐