|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小艳子 于 2021-7-6 11:17 编辑
#include<stdio.h>
void get_array(int b[10]);
void get_array(int b[10]){
int i;
for(i = 0; i < 10; i++){
printf("b[%d] =%d\n", i, b[i]);
}
printf("sizeof b: %d\n", sizeof(b));
}
int main(){
int a[10] ={1,2,3,4,5,6,7,8,9,0};
printf("sizeof a: %d\n", sizeof(a));
get_array(a); \\理论上来说这一步得到的是第一个元素的地址,占4个字符才对,我的运行结果是8个字符。
return 0;
}
C:\Users\Administrator\Desktop\1.png
在C语言中int类型变量的长度不是固定的,与系统位数和编译器有关。但是在32位或64位系统下都是4字节
但是你的这个程序不涉及int的长度问题,是你自己理解不对。
- printf("sizeof b: %d\n", sizeof(b));
复制代码
得到的不是数组的长度,是指针的长度。指针的长度是固定的,64位编译器下是8字节,32位编译器下是4字节,这是系统的寻址长度。
|
|