元武 发表于 2021-9-12 08:55:02

sizeof()统计数组长度

为什么
在int main()中sizeof算的是40
在int main()里算的是8

大马强 发表于 2021-9-12 09:02:51

我记得传入函数的是指针,这时sizeof算的是指针的长度

routty 发表于 2021-9-12 10:02:15

本帖最后由 routty 于 2021-9-12 10:33 编辑

=都没显示?

routty 发表于 2021-9-12 10:06:04

函数调用数组的时候,并不是在函数中复制整个数组,调用的是指向数组的首地址,所以说的和楼上一样,指针变量长度8

元武 发表于 2021-9-12 11:09:09

routty 发表于 2021-9-12 10:02
=都没显示?

我改了好多遍代码,一直是8和40,截图是改的过程中任意截得,但总体没什么影响

元武 发表于 2021-9-12 11:11:43

routty 发表于 2021-9-12 10:06
函数调用数组的时候,并不是在函数中复制整个数组,调用的是指向数组的首地址,所以说的和楼上一样,指针变 ...

原来这样谢谢你,还是有一点点疑惑是为什么指针长度变成了8呢?int *不是 4吗?

元武 发表于 2021-9-12 11:17:11

大马强 发表于 2021-9-12 09:02
我记得传入函数的是指针,这时sizeof算的是指针的长度

原来这样谢谢你,还是有一点点疑惑是为什么指针长度变成了8呢?int *不是 4吗?

大马强 发表于 2021-9-12 11:22:33

32位编译器,输出结果为4.
64位编译器,输出结果为8

大马强 发表于 2021-9-12 11:24:51

https://static01.imgkr.com/temp/7fea1b198a364a7c9a9ce198e699cba0.jpg

元武 发表于 2021-9-12 13:22:18

大马强 发表于 2021-9-12 11:24


好的谢谢你
页: [1]
查看完整版本: sizeof()统计数组长度