scanf("%s",c+1)中c+1是什么意思?会有什么效果?

如题所述

这里的c应该是指针
c+1就是不从第一个地址开始读数据
例如:char *c;
c指向一个可用空间
然后scanf("%s",c+1) 就是从控制台读取数据,然后将数据存到从c+1开始的地方
而不是从c指向的空间的起始地址开始。说的有点绕。还是需要更多的基础知识才能明白,建议你可以看看指针这一块追问

如果c是string类型的,输入abcdef,那它是从c[1]开始保存的吗?

追答

C语言里面没有string类型,只有char * 。数组都是从0开始的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-13
C语言是定义成字符数组 char c[100];
scanf("%s",c+1);
c为数组名即数组的首地址,首地址+1,根据指针的概念,即向后移动一个单位,由于定义的是char数组,所以向后移动1个字节开始存储字符串。
根据你的追问,你的想法是对的
sample in: abcdefg
debug mode : c[0]=0,c[1]='a',c[2]='b'....本回答被网友采纳
相似回答