问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

char a[ ]="abcdefghij"; char *q=a; int *p=(int *)a; while(*q) *...

发布网友 发布时间:2024-10-21 02:12

我来回答

3个回答

热心网友 时间:2024-11-10 17:26

(1)先看一下初始状态
char a[ ]="abcdefghij";
char *q=a;
int *p=(int *)a;
可以得到如下这样的内容
q是指向字符的指针, 其每次递增/减单位是一个字符,q初始指向 "abcdefghij"的头一个字符'a'
p是指向整型变量的指针,其每次递增/减单位是四个字符,p初始指向 "abcdefghij"的头一个字符'a'

(2) 分析 while(*q) *q++=*q+1;
这个语句的意思是 " 循环处理使 q 当前指向的内容在数值上增加1"
直到q指向的内容是 0 就退出循环。
可以看到每次将q的指针增加1,q的指向就向"abcdefghij"的末尾移动, 因为这是一个常量字符串,所以它的末尾实际上包括一个未显示的'\0'标记,标示字符串的结尾,所以,当q指向这个'\0'标示时,while循环就会结束。
注意: '\0'=NULL=0
当这个循环结束后,q指向是字符串结尾,即'\0'.而在q移动的过程中, q指向的内容都被加了1,即
字符串"abcdefghij" 中的每一个字符都加了1,所以 'a' 变成了'b', 'b'变成了'c' ,依此类推。
最后字符串变成了 "bcdefghijk"
(3) p+=2
将p的指针增加2
由于p是指向整型的,指针增加/减少1, 它将移动四个字节,加2则移动8个字节
p+=2后,p指向实际为 'j'
(4) printf("%s",p);
从p的指针所指的地址开始打印内存中的字符,直到遇到'\0'为止,
所以,打印的字符串为 "jk"

热心网友 时间:2024-11-10 17:31

while(*q) *q++=*q+1;这段执行玩字符串变为bcdefghijk;
p+=2;这段将指针指向j位置

热心网友 时间:2024-11-10 17:31

q和a指向同一个数组
p为强行转换过来的指针,也指向那个数组
后面开始判断*q的值,然后让*q的值变为*q+1的值,同时,*q自己还要再加1,
后面的就不说了。因为不在循环体内。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... ...数字的函数。(如中文状态不方便,可以替换为ABCDEFGHIJ) ...3/5是多少? 2:一个数的5/8比20少4,这个数是多少? 一个数减少它的24%是多少 点外卖的时候,你有没有过刺客? 一个数比它的25%多五分之二,求这个数多少 1.一个数比50的29分之9多4.5,求这个数 2.比一个数多它的7分之2是45... 一个数比50的 9 25 多4.5,求这个数? 一个数比五十的二十五分之九多四点五求这个数 一个数比50的二十五分之九多4.5,求这个数? 计算小数除法时,小数点的移动是以除数的小数位数为标准的.√√(判断... 河北经贸大学专科在哪个校区,硬件设施(宿舍,图书馆,教室,食堂... 问下纯羊奶粉哪个牌子的好?为什么盛健臻乳能进入十大羊奶粉排行榜? 纯羊奶粉哪个牌子好?为什么盛健臻乳能进入十大羊奶粉的排行榜? 求个纯刷图弹药的加点方式 急!!!谢了 为什么我的地下城与勇士老是出现帐号异常状态,所有角色被限制2个... 地下城角色在刷图时头上会读秒是不是中了木马??不是技能冷却。 地下城 柔道PK+点 别照搬 某意思 池小池是什么小说池小池简介 童年的颜色诗 童年的颜色 行substr(“abcdefghij”,3,4,t)后,t中的值为 ___ __ 。cdef ...倍数,ab是2的倍数...,abcdefghij是10的倍数,这个数是() 一个数的8/9比他的50%多1.2,这个数是多少 一个数的2/3比它的50%多1.2,这个数是多少?(用方程解) 一个数的五分之三比这个数的50%多1.2,这个数是多少 一个数的百分之60比这个数的百分之50多1.2,这个数是多少 一个数比它的20%多1.2,这个数是多少 ...两数的平均数是50,加上丙后三个数的平均数提高了1.2,丙数是多少? 《地痞街区》全角色特点及技能属性攻略详解介绍_《地痞街区》全角色特... 求助,灶台这里的油烟机该怎么装好,样子好一点。 开放式厨房悬空油烟机好用吗 mybatis-plus model属性@TableField(exist = false)注解加上@JsonPrope... 微博直播买的东西网页怎么退款啊 我从微博得到一个网页链接后来连过去买了东西然后现在想退掉订单怎么... 手机屏幕出现竖条是什么问题? 三零管理基本原理 三零管理管理特点 三零管理特点 汶上县第一中学如何进行学校改革并推进素质教育? 宏基笔记本电脑4740G偶尔花屏