c语言指针与字符数组?

#include<stdio.h>#defines"dlrow,olleh"intmain(){inti;for(i=2;i<13;i++)putchar(*((char... #include<stdio.h>
#define s "dlrow,olleh"
int main()
{
int i;
for(i=2;i<13;i++)
putchar(*((char *)(&s+1)-i));
}
问一下这个程序是怎么实现那些字符的倒转的?
展开
 我来答
自然逻辑
2019-12-12 · TA获得超过116个赞
知道小有建树答主
回答量:147
采纳率:76%
帮助的人:12.8万
展开全部

这个时候&s指向字符串的第一个字符的地址,所以屏幕上输出的是d。

&s+1后,p指针的地址直接跳到了字符串的最后'\0',这个时候屏幕上输出是'\0'。

注意这个位置的标志。(p-2)是常量,不是变量。因为字符串在前面定义的常量。屏幕上的输出h。并且在d与h之间有一个空白,因为前面输出一个字符'\0'。

更多追问追答
追问
问一下你用的是什么编译器
怎么能看这些东西的
最大的宝宝
2019-12-10 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:387万
展开全部
s代表的字符串在内存中存储为"dlrow,olleh\0"
&s+1指向s的终止符\0之后的一个字符
当i=2时,(&s+1)-i相当于回退两格,指向s的最末一个字符h,依次逆序输出
更多追问追答
追问
&s+1指向s的终止符\0之后的一个字符
&s+1指向s的终止符\0之后的一个字符
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡杨小豹子
高粉答主

2019-12-10 · 每个回答都超有意思的
知道小有建树答主
回答量:2700
采纳率:98%
帮助的人:69万
展开全部
字符数组由若干元素组成,每个元素存放一个字符,数组是在内存中开辟了一段空间存放字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-12-12
展开全部
我试过了
printf("%c\n",*(s));
输出 d,即是字符串的 第一个字符
追问
整个程序运行是到过来输出的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2019-12-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6283万
展开全部

代码文本:

#include "stdio.h"

#include <string.h>

#define s "dlrow,olleh"

int main(int argc,char *argv[]){

int n;

for(n=strlen(s)-1;n>=0;printf("%c",s[n--]));

putchar('\n');

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式