1447391641 发表于 2020-12-2 14:19:10

数组运行


#include<stdio.h>
int main()
{
      int i,c;
      char s={"8980","9198"};
      for(i=3;i>=0;i--)            
      {
                c=s+s-2*'0';
                s=c%10+'\0';         
      }
      for(i=0;i<=1;i++)
      puts(s);
      return 0;
}
为什么 s[ i ] 这个没有定义的数组,最后能输出 9198,另外每次循环的'\0'的值是多少呢。

1447391641 发表于 2020-12-2 14:22:11

'\0'的值不应该都是零吗,怎么第二次循环s=依旧等于八呢

风过无痕1989 发表于 2020-12-2 15:29:46

本帖最后由 风过无痕1989 于 2020-12-2 15:32 编辑

1447391641 发表于 2020-12-2 14:22
'\0'的值不应该都是零吗,怎么第二次循环s=依旧等于八呢

我已经在下面这个帖子的第 9 层回答你了:‘0’ 、'\0' 都是字符型数字,而字符型数字不参与数字型的运算,被忽略了

https://fishc.com.cn/thread-185927-1-1.html
页: [1]
查看完整版本: 数组运行