我是C的新手,我知道Char类型变量只能容纳一个字符 - 比如
char c = 'a';
如果这是真的,我写的这个C程序是如何工作的?
#include "stdafx.h"
#include <stdio.h>
int main()
{
char c;
c=getchar();
while (c!=EOF)
{ putchar(c);
c = getchar();
}
getchar();
return 0;
}
如果你按照这个例子,变量c是一个char,所以它只能容纳一个字符,但是当我在程序中时,我可以在控制台中键入一个像“Hello world”这样的整个字符串,然后我 点击Enter(我知道getchar()函数会将我输入的内容分配给变量c),控制台也会打印一个像“Hello world”这样的整个字符串(这就是putchar()函数的作用。)我跑了这个Visual Studio 2010中的代码。
我认为当我输入字符串“Hello world”并输入enter时,程序必须发出警告,因为发生了溢出。然而,当我输入超过char类型(1个字节长度)的大小限制的字符串时,一切运行正常。为什么没有错误?