【发布时间】:2013-01-12 22:40:10
【问题描述】:
为了说明我的问题:
int main(void){
int myary[20];
int *myaryPtr;
myaryPtr = myary;
sizeof(myary); // Will it return 80? Correct?
sizeof(myaryPtr); // Will it return 4? Correct?
return 0;
}
首先,我的假设是否正确?
然后假设我的假设是正确的,详细解释是什么?我知道我的 20 元素数组是 80 字节,但名称 myary 不只是指向数组第一个元素的指针吗?那么不应该也是4吗?
【问题讨论】:
-
以
sizeof(int) == 4和sizeof(int *) == 4为准,第一个通常是这种情况,第二个适用于 32 位系统(sizeof(int *) == 8在 64 位系统上),您的假设关于sizeof是正确的。数组与指针不同——见证sizeof的不同结果。但这一定是许多其他问题的重复......困难在于找到它们。 -
抱歉,我很难找到与我的确切问题相匹配的问题。
-
您可能想阅读comp.lang.c FAQ 的第 6 部分。