关于指针定义的问题

lendylixt 2009-08-14 10:07:07
请教各位大虾
在看到指针定义的时候有这么一句话
“指针就是内存单元的地址”

然后定义指针的时候
指针变量也可以等于对一个变量取址
指针变量也可以等于另一个指针变量
指针变量可以等于一个变量(这个变量有值,可以是各种各样的值)

最后一种情况要怎么理解?
指针是指向了这个变量,还是指针变量的地址就是这个变量的值?
...全文
160 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lendylixt 2009-08-14
  • 打赏
  • 举报
回复
e
好的
D版书误我
string a="front";

谢谢大家
wuguizhu 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lendylixt 的回复:]
加点分,再问一下
char a="front";
char *b=&a;
如果让*b="middle";是不是a的值也变成了"middle"?

[/Quote]

直接告诉你, char a="front"; 这句话就不对!
wuguizhu 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lendylixt 的回复:]
有点明白了
*a="front";
的意思是不是将a指向"front"?
[/Quote]

对,“front”是个存在于静态数据区的常量;char * a="front"就是把常量“front”的地址赋给a。
lendylixt 2009-08-14
  • 打赏
  • 举报
回复
加点分,再问一下
char a="front";
char *b=&a;
如果让*b="middle";是不是a的值也变成了"middle"?
lendylixt 2009-08-14
  • 打赏
  • 举报
回复
有点明白了
*a="front";
的意思是不是将a指向"front"?
xinshou2595 2009-08-14
  • 打赏
  • 举报
回复
建议LZ换本书看看~
my578009030 2009-08-14
  • 打赏
  • 举报
回复
当然可以啦!编译系统将自动把存放字符串常量的存储区首地址赋给指针变量使之指向该字符串的第一个字符。
lendylixt 2009-08-14
  • 打赏
  • 举报
回复
。。。
茫然
不知道对地址操作有什么用
直接用变量不行么
还有什么情况非要通过指针?
pmerOFc 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lendylixt 的回复:]
还是不明白
能不能说清楚一点
比如,在书上我看到可以这样定义
char * rp[3]={"front","middle","rear"}
那可不可以
char * a="front";
[/Quote]
可以
pmerOFc 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 lendylixt 的回复:]
请教各位大虾
在看到指针定义的时候有这么一句话
“指针就是内存单元的地址”

然后定义指针的时候
指针变量也可以等于对一个变量取址
指针变量也可以等于另一个指针变量
指针变量可以等于一个变量(这个变量有值,可以是各种各样的值)

[/Quote]
老实说
你的书很烂
真的劝你换一本
guoxianyu521 2009-08-14
  • 打赏
  • 举报
回复

2楼是对的!

void* p = (void*)i;


将“原变量值”转换为“原类型地址”就可以当做地址来用啦!

好像没啥大用!
lendylixt 2009-08-14
  • 打赏
  • 举报
回复
还是不明白
能不能说清楚一点
比如,在书上我看到可以这样定义
char * rp[3]={"front","middle","rear"}
那可不可以
char * a="front";
晨星 2009-08-14
  • 打赏
  • 举报
回复
最后一种情况需要强制转换。
比如:
int i = 100;
void* p = (void*)i;
就是强制指向编号为100的地址,在I386中,应该是线性地址吧。
xxcclowlg 2009-08-14
  • 打赏
  • 举报
回复
取首地址啊..

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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