printf函数输出字符串的时候,是从指针变量a的当时所指向的元素开始的。逐个输出字符直到遇见\0

既然\0不等与空格,为什么我以下代码输出的结果只是到了空格就结束了??#include<stdio.h>intmain(){charstr[10];char*a;a=st... 既然\0不等与空格,为什么我以下代码输出的结果只是到了空格就结束了??
#include<stdio.h>
int main()
{
char str[10];
char *a;
a=str;
scanf("%s",a);
printf("%s\n",a+2);
}
例如输入 I am your father!
得到的结果是am,而不是am your father!,这是为什么??按理说!之后才是\0呀,输出也应该是到那里才停止的呀
展开
 我来答
2319842847
2015-07-06 · 超过17用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:38.3万
展开全部
你这个程序有问题吧,a是指针,输出的应该是地址吧,+2是什么意思,输出打印的时候不要加*号吗?
追问
指针变量直接赋值字符串,然后通过改变指针变量的指向,然后输出改变之后的值。我想的在这个基础上加点东西,所以就设了字符串数组,然后通过设置指针来实现,然后我发现这样是不行的。a+2的意思是从字符串的第3个字符开始输出字符串,直到\0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式