首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

* p =100,对还是错?解决方案

2012-04-10 
* p 100,对还是错?上图截自《C程序设计(第四版)》谭浩强224页其中* pointer_1100这句不是表示把指针变

* p =100,对还是错?



  上图截自《C程序设计(第四版)》谭浩强 224页 其中

  "* pointer_1=100;"

  这句不是表示把指针变量所指向的变量的值赋值为100么?为什么书上说是“把地址100赋给指针变量”并且判为非法?

[解决办法]

探讨
引用:

在编译时100被认为是一个整形常量,而pointer_1是一个指针变量。他们两个的类型不同,而且c没有从整形到一个指针类型的自动转换。这种用法在使用时会给出警告或者错误。不过这样应该是可以的pointer_1=(TYPE *)100(注:TYPE是pointer_1的类型入),另这种用法也是没有意义的,即便是能把地址100赋值给pointer……

[解决办法]
如果是在初始化的时候这样就不对 type *p = 100; 
如果已经让指针指向字符或者实型变量地址的话这样就是正确的。
[解决办法]
同意楼上。
C/C++ code
  int *pointer1 = 100 ;//直接赋值错误  int *pointer2, a ;  pointer2 = &a ;  *pointer2 = 100 ;//这是可以的
[解决办法]
请检查一下书上内容跟下面那个情况比较一致。

1、初始化指针指向写法:
int *pointer_1 = 100;//把指针指向地址100

2、改变指针的内容:
int x = 10;
int *pointer_1 = &x;
*pointer_1 = 100;//该指针指向的内容,这时x的值为100

热点排行