c语言问题
#include<stdio.h>main(){chars[]="ABCDEF",i,l;Fchar*p;EFp=s[0]+strlen(s);什么意识?DEFfor(i...
#include <stdio.h>
main()
{char s[]="ABCDEF",i,l; F
char *p; EF
p=s[0]+strlen(s); 什么意识? DEF
for(i=0;i<strlen(s);i++) CDEF
{p--;printf("%s\n",p);} BCDEF
} ABCDEF
解释一下过程 展开
main()
{char s[]="ABCDEF",i,l; F
char *p; EF
p=s[0]+strlen(s); 什么意识? DEF
for(i=0;i<strlen(s);i++) CDEF
{p--;printf("%s\n",p);} BCDEF
} ABCDEF
解释一下过程 展开
2个回答
展开全部
#include <stdio.h>
main()
{char s[]="ABCDEF",i,l; 定义字符串
char *p; 定义字符类型指针
p=s[0]+strlen(s); s[0] 是字符串s的起始地址,strlen(s)是获取s的长度,这里就是把p 指向s的末尾,也就是字符'F'
for(i=0;i<strlen(s);i++)
{p--;printf("%s\n",p);}
第一次循环,p 指向'F' 输出字符串p, 所以是F
然后p--, p指针自减一位,也就是往前移了一位,也就是指向了E,输出字符串就是EF
后面以此类推
}
main()
{char s[]="ABCDEF",i,l; 定义字符串
char *p; 定义字符类型指针
p=s[0]+strlen(s); s[0] 是字符串s的起始地址,strlen(s)是获取s的长度,这里就是把p 指向s的末尾,也就是字符'F'
for(i=0;i<strlen(s);i++)
{p--;printf("%s\n",p);}
第一次循环,p 指向'F' 输出字符串p, 所以是F
然后p--, p指针自减一位,也就是往前移了一位,也就是指向了E,输出字符串就是EF
后面以此类推
}
追问
第一循环时,不是先有p--吗?输出时不久变成E了
追答
字符串的最末一个是 '\0'
不是'F'
p--以后是'F'
我前面说错了
展开全部
#include <stdio.h>
#include <string.h>//少头文件
void main()
{
char s[]="ABCDEF",i,l;
char *p;
//p=s[0]+strlen(s); //这儿写错了 应该是这样写的
p=&(s[0])+strlen(s);
for(i=0;i<strlen(s);i++)
{
p--;
printf("%s\n",p);
}
/*
它的功能键就是如你所说的的输出那样的结果
p=&(s[0])+strlen(s); &s[0]是s字符串的首地址
它再加上这个字符串的长度就是指向最后一个字符,
然后第次循环,p就向前移一个字符,所以就输出这样结果
F
EF
DEF
CDEF
BCDEF
ABCDEF
*/
}
#include <string.h>//少头文件
void main()
{
char s[]="ABCDEF",i,l;
char *p;
//p=s[0]+strlen(s); //这儿写错了 应该是这样写的
p=&(s[0])+strlen(s);
for(i=0;i<strlen(s);i++)
{
p--;
printf("%s\n",p);
}
/*
它的功能键就是如你所说的的输出那样的结果
p=&(s[0])+strlen(s); &s[0]是s字符串的首地址
它再加上这个字符串的长度就是指向最后一个字符,
然后第次循环,p就向前移一个字符,所以就输出这样结果
F
EF
DEF
CDEF
BCDEF
ABCDEF
*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询