开发者社区 问答 正文

scanf中%s输入字符串,不理解字符数组名+1的操作

程序要求连续输入字符串,如:
aabbcc abvc
sss adfa
csf dsagsd

看了别人的代码有些地方不理解

  while((scanf("%s %s",st1+1,st2+1)!=EOF)
   {
      len1=strlen(st1+1);
      len2=strlen(st2+1);
      ......
   }

请问scanf中 字符数组名+1的操做是扩充了字符数组吗?如果是那么扩充的内容是什么,代码中Len1和len2 与原本st1,st2的长度有什么变化呢?

展开
收起
a123456678 2016-06-06 18:36:58 4323 分享 版权
1 条回答
写回答
取消 提交回答
  • scanf("%s %s",st1+1,st2+1) , 不是从st1 和 st2首地址开始写, 从数组下标是1的位置开始写。 具体为什么数组不从头开始写,通过这些代码还不容易看出来。len1 ,len2还是输入字符串的长度

    2019-07-17 19:29:16
    赞同 展开评论
问答地址: