同样代码在vs2010和dve中出现不同结果。
#include <stdio.h>#include <string.h>
#define max 10
int main()
{
int i,m;
unsigned int ch;
char array;
printf("请随意输入一串数组:\n");
for(i = 0;(array = getchar()) != '\n';i++);
ch = strlen(array);\\同样的函数放在dve中可正常计算结果;但在vs2010中会进行求和而非求长度
printf("%u\n",ch);
for(i = 1;m = (i*i);i++)
{
if(ch > m)
{printf("s\n");continue;}
break;
}
i--;
printf("%d",i);
} 一段搞笑的代码
#define max 10 // 明明声明了10个元素
123456789 // 输入了 9 个元素
for(i = 0;(array = getchar()) != '\n';i++); // 接收了 123456789\n10个元素
char array; // 刚刚好存完 123456789\n
然后 strlen(array); 来测式字符串的长度(strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。)
ba21 发表于 2019-11-27 23:44
一段搞笑的代码
#define max 10 // 明明声明了10个元素
重要的是要添加'\0’,懂了
页:
[1]