吻你不厌 发表于 2020-10-18 22:16:53

疑惑?

#include <stdio.h>

int main()
{
      char ch = "FishC";
      int i;

      printf("请输入你想访问的字符序号(0~5):");
      scanf("%d", &i);

      if (!(i >= 0 && i <= 5 && printf("%c\n", ch)))
      {
                printf("非法访问!\n");
      }

      return 0;
}
if后面括号里那一句怎么执行呢?

昨非 发表于 2020-10-18 22:23:14

      if (!(i >= 0 && i <= 5 && printf("%c\n", ch)))
翻译为:当 i 不在数组索引范围内且输出格式不是数组访问时,打印非法操作

吻你不厌 发表于 2020-10-18 23:28:09

昨非 发表于 2020-10-18 22:23
if (!(i >= 0 && i

意思是这个程序不能打印出在索引范围内的值吗?

昨非 发表于 2020-10-18 23:29:26

吻你不厌 发表于 2020-10-18 23:28
意思是这个程序不能打印出在索引范围内的值吗?

对的,数组越界
页: [1]
查看完整版本: 疑惑?