【发布时间】:2016-02-17 19:03:04
【问题描述】:
在这段代码中,我取消了一个未初始化的元素。我的结果是否未定义?
int x[10];
int *p = x;
cout << sizeof(p) / sizeof(*p) << endl;
【问题讨论】:
-
什么意思“一个不存在的元素”?就在那儿。
-
意思是*未初始化。
-
您的结果已定义但无用
-
您没有取消引用任何内容,因为
sizeof的操作数表达式是未计算的。 “取消引用”的意思是“评估间接表达式”。 -
sizeof在完整时工作,而不是在运行时工作。代码相当于sizeof(int*) / sizeof(int);
标签: c++ pointers sizeof dereference