【发布时间】:2011-12-03 16:12:01
【问题描述】:
我正在使用以下代码在 C/C++ 中测试 sizeof 运算符的使用:
#include <ctype.h> /* Character types */
#include <stdio.h> /* Standard buffered input/output */
#include <stdlib.h> /* Standard library functions */
#include <string.h> /* String operations */
#include <sys/types.h> /* Data types */
#include <sys/wait.h> /* Declarations for waiting */
#include <unistd.h>
void main()
{
char a[100];
char *des = malloc(100*sizeof(char));
strcpy(des,"abcded\0");
printf("%d\n",sizeof(des));
printf("%d\n",sizeof(a));
free(des);
}
这个程序为什么会输出:
4
100
相对于:
100
100
【问题讨论】:
-
因为你还没有读过comp.lang.c faq ...从第6节开始:)
-
它是
int main; C 不是 Java。 -
@Jens 早在 Java 出现之前,人们就一直将
main错误地输入为void。这是错误的,但根本没有理由提到 Java,真的。