int x;
这是宣言还是定义?
在编写以下代码时,
#include <stdio.h>
int main(void)
{
int x;
printf("%p",&x);
return 0;
}
它打印一些地址。因此,在分配内存时,int x;
不能只是一个声明。这是一个定义吗?
答案 0 :(得分:3)
6.7声明
...
5声明指定一组标识符的解释和属性。标识符的定义是该标识符的声明:
- 对于一个对象,导致为该对象保留存储;
- 对于一个函数,包括函数体; 101)
- 对于枚举常量或typedef名称,是(唯一)声明 标识符。
在这种情况下,int x;
是定义(或定义声明)。
答案 1 :(得分:2)
int x
;是一个定义。 extern int x;
只是一个声明。 extern int x = 3;
也是一个定义。 HTH