#include<stdio.h> #include<string.h> char *fun(char *t) { char *p=t; return(p+strlen(t)&
答案:2 悬赏:0
解决时间 2021-01-11 04:38
- 提问者网友:星軌
- 2021-01-10 05:10
#include<stdio.h> #include<string.h> char *fun(char *t) { char *p=t; return(p+strlen(t)/2; } main()
最佳答案
- 二级知识专家网友:人類模型
- 2021-01-10 05:35
VC6实际编译 结果过efgh
#include
#include
char *fun(char *t)
{ char *p=t;
return(p+strlen(t)/2;
}
main()
{ char *str="abcdefgh";
str=fun(str);
puts(str);
}
解释:程序开始,从main函数内开始执行,首先执行的函数是str=fun(str)
str="abcdefgh",传递到char* t,
char *p=t;这样指向char的指针p包含的是t的首地址 str[0],
p+strlen(t)/2; t的长度是8 除以2 等于4
所以 p+strlen(t)/2 就是str[4] 即e字符那个位置
所以返回的就是e字符及以后的字符
也就是efgh
puts和printf差不多 但只能打印字符串
希望回答对您有所帮助!!! 看不明白的话还请您补充问题我再做解释 :)
#include
#include
char *fun(char *t)
{ char *p=t;
return(p+strlen(t)/2;
}
main()
{ char *str="abcdefgh";
str=fun(str);
puts(str);
}
解释:程序开始,从main函数内开始执行,首先执行的函数是str=fun(str)
str="abcdefgh",传递到char* t,
char *p=t;这样指向char的指针p包含的是t的首地址 str[0],
p+strlen(t)/2; t的长度是8 除以2 等于4
所以 p+strlen(t)/2 就是str[4] 即e字符那个位置
所以返回的就是e字符及以后的字符
也就是efgh
puts和printf差不多 但只能打印字符串
希望回答对您有所帮助!!! 看不明白的话还请您补充问题我再做解释 :)
全部回答
- 1楼网友:深街酒徒
- 2021-01-10 06:43
输出:efgh
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯