社区
C语言
帖子详情
char *p问题
waterluo2003
2003-10-19 11:34:06
有一个题目,问执行后的结果:
main(){
char *x;
x="47";
do
printf("%c,",--x);
while(!x);
}
书上的答案是: 3,
问一下,给一个指针变量初始化时,好像指向首地址呀,上面怎么变成3了呢,就算是指针指向的内存地址变了,也应是4或7呀!
...全文
65
11
打赏
收藏
char *p问题
有一个题目,问执行后的结果: main(){ char *x; x="47"; do printf("%c,",--x); while(!x); } 书上的答案是: 3, 问一下,给一个指针变量初始化时,好像指向首地址呀,上面怎么变成3了呢,就算是指针指向的内存地址变了,也应是4或7呀!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sharkhuang
2003-10-20
打赏
举报
回复
ft!破书!
bing_huo
2003-10-20
打赏
举报
回复
ft...
ningzhiyu
2003-10-20
打赏
举报
回复
main(){
char *x;
x="47";//指向一个字符串常量“47”的首地址。
do
printf("%c,",--x);//"--"使指针向后移动,目标内存不知道。打印结果根据当时内存
//不同而定.一个到处乱飞的指针,恐怖。
while(!x);//检查x是不是0值,(检查它的指向是否为空是!*x)
}
老大,这样的程序如果出现在实际的项目中,管理的老大不吐血身亡就怪了。
zhyy
2003-10-20
打赏
举报
回复
可能打出任意字符串!
事实上x根本未附初值!
CountFloyd
2003-10-20
打赏
举报
回复
x指向一个常量,输出的就是一个实心的倒三角符号。
你这里的x是指针,那 !x是什么???这个循环有什么用?
xiaohaozi0083
2003-10-20
打赏
举报
回复
运行是运行出来了,但输出并不是什么3or4有或是7,相信你那本什么书,肯定是误人子弟了。
limd
2003-10-20
打赏
举报
回复
楼主,现在破书很多,选一本好的书吧,不要被垃圾书给埋没了
SCUM
2003-10-20
打赏
举报
回复
是什么误人子弟的书??!?!
lyff8neo
2003-10-20
打赏
举报
回复
我怎么上机什么都打不出来啊!
见鬼!要赶快恶补c了,到时候数据结构不错,c完蛋就死定了!
figh
2003-10-20
打赏
举报
回复
ningzhiyu(凝滞雨)说的没错,就是这样的情况...
hchinside
2003-10-20
打赏
举报
回复
害人
深入理解const
char
*p,
char
const*p,
char
*const p,const
char
**p,
char
*const*p ...
(1)const
char
*p (2)
char
const*p (3)
char
*const p (4)const
char
**p (5)
char
const**p (6)
char
*const *p (7)
char
**const p 当然还有在(5)、(6)、(7)中再插入一个const的若干情况,不过分析了以上7中,其他的...
char
*p与
char
**p
char
*p与
char
**p
char
str[6]={‘H’,‘E’,‘L’,‘L’,‘O’,’\0’}
char
*p=str
char
** p=&p
char
*p相当于p取了str的地址, * p才是str的内容。而
char
** p相当 * p于取了 str的地址,**p才是str的内容。...
const
char
*p,
char
const *p和
char
*const p区别(面试题常见)
先看第一种,先看p,根据优先级它和*结合,是指针,指向
char
类型,但是
char
前面有一个const修饰,所以p所指向的内容为const类型不可修改。 第二种:由于没有const *的运算,若出现const *的形式,则const...
const
char
*p,
char
const*p和
char
* const p的区别
const
char
*p;//
char
*p是一个指针,指向
char
类型的,被const修饰,表示指向的内容是无法改变的 //但是,p可以改变
char
const *p;//由于没有const *的指针类型,所以const修饰
char
*p,和const
char
*p的效果...
理解一下
char
**p
char
*p[]
char
*p
char
p[] 这两个p 都是字符串首地址
char
**p
char
*p[] 也都是一个p指向一个指针(首地址) 栗子
char
*p[5]就是5个“”字符串 每一个p[i]是一个字符串
char
**p 每一个p[i]也都是一个字符串 int p[3
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章