1sun15718 发表于 2020-6-6 12:38:55

devC和VC指针长度不同的问题

#include<stdio.h>

void sr(int *a);

int main(){

int i,a[]={1,2,3,4,5,6,7,8,9,10};

printf("数组a长度为%d\n",sizeof(a));

sr(a);

return 0;

}

void sr(int *a){

printf("指针a长度为%d\n",sizeof(a));

}

用devC得到的指针a的长度是8,用VC是4,不同的原因是因为devC是默认64位的环境下运行的指针而VC是32位吗?萌新求解答

jkluoling1992 发表于 2020-6-6 12:42:55

跟编译有关吧,64位编译的话指针8字节,32位编译4字节

赚小钱 发表于 2020-6-6 12:45:56

看 sizeof(long)

永恒的蓝色梦想 发表于 2020-6-6 13:03:35

赚小钱 发表于 2020-6-6 12:45
看 sizeof(long)

不如 sizeof(&main)

王逗比666 发表于 2020-6-6 13:16:43

我试了下,确实32位编译是4个字节64位编译是8个字节,应该就是这个原因

1sun15718 发表于 2020-6-6 13:51:54

永恒的蓝色梦想 发表于 2020-6-6 13:03
不如 sizeof(&main)

老哥sizeof(&main)是怎么个用法

永恒的蓝色梦想 发表于 2020-6-6 14:12:53

1sun15718 发表于 2020-6-6 13:51
老哥sizeof(&main)是怎么个用法

&main 是个指针,sizeof 指针你应该知道吧
页: [1]
查看完整版本: devC和VC指针长度不同的问题