用 sizeof 输出变长数组长度,结果为 0 ?
我把n改成100,马上输出正确值100,这说明sizeof对定长数组是这样用的。//直接上代码
程序代码:
int n = 0; char a[n]; //定义一个变长数组,接收字符输入 char *p = a; char ch; printf("Enter a message: "); ch = getchar(); while (ch != '\n'){ //将输入的字符放到数组中 n++; *p = ch; p++; ch = getchar(); } printf("%d\n", sizeof(a)); //这里输出的数值应该是输入的字符的个数,可是为什么输出是0呢?(sizeof(char)的值是1,就不去除他了)