一个很简单的指针问题,也是我一直以来的疑惑!



#include<stdio.h>
main()
{
int i=10;
int *p;
p=i; //这里是个什么意思? 忘高手指点下 如果是p=&i 那就是指向了i的地址这个我知道;
printf("%d",p);
}

...全文
112 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wei832660 2010-08-25
  • 打赏
  • 举报
回复
the same feeling
g315580086 2010-08-25
  • 打赏
  • 举报
回复
feel strange
duke56 2010-08-25
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
int i=10;
int *p;
p=(int *)i;//将指针p指向10(i的值),只是指向该地址,能不能使用是个未知数
//如果这个地址刚好是指向堆的地方,而且其它地方暂时没有使用等
printf("%d\n",p);//输出指针p所指向的地址
return 0;
}

[Quote=引用 10 楼 ndjk454164628 的回复:]
C/C++ code


#include<stdio.h>
main()
{
int i=10;
int *p;
p=(int *)i; //这里是个什么意思? 忘高手指点下 如果是p=&i 那就是指向了i的地址这个我知道;
printf("%d",p);
}




加强制类型转换符 不过不一定让访问
[/Quote]
derest12 2010-08-25
  • 打赏
  • 举报
回复
你这个代码没有什么实际的意义,就是想上面楼的朋友说一下,本身p就是一个整形,只是后面语句把P作为一个10的内存地址。
ndjk454164628 2010-08-25
  • 打赏
  • 举报
回复


#include<stdio.h>
main()
{
int i=10;
int *p;
p=(int *)i; //这里是个什么意思? 忘高手指点下 如果是p=&i 那就是指向了i的地址这个我知道;
printf("%d",p);
}



加强制类型转换符 不过不一定让访问
murhpy 2010-08-25
  • 打赏
  • 举报
回复
就是p指向地址为10的内存,这样赋值是可以的,指针的值本来就是一个整数,可能有的编译器会有警告,那就强制转换一下再赋值就行了。
艾莎云 2010-08-25
  • 打赏
  • 举报
回复
int i=10;
int *p;
p=i;

等价于
int i=10;
int *p=&i;
operatingtuzi 2010-08-25
  • 打赏
  • 举报
回复
难道你这样写没有编译错误吗

类型根本不能自动转换!!!
chenjiao322 2010-08-25
  • 打赏
  • 举报
回复
跟福了~~
doriahe 2010-08-25
  • 打赏
  • 举报
回复
这里p的值就是10
mashrb 2010-08-25
  • 打赏
  • 举报
回复
最好不要这样子用。会出问题滴!!
lovestefanie 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kingteng 的回复:]
就是p指向地址为10的内存
[/Quote]
+1
liao05050075 2010-08-25
  • 打赏
  • 举报
回复
就是把p指向地址10
kingteng 2010-08-25
  • 打赏
  • 举报
回复
就是p指向地址为10的内存

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧