[闲聊] 这里有C语言大师吗 关于int的大小

楼主: Wardyal (Wardyal)   2024-03-01 09:39:44
我有一个array
int a[] = {1,2,3,4,5,6,7,8,9};
我要印出来
for(int i = 0 ;i < sizeof(a)/sizeof(int*);i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
为什么最后都只印出来前四组
我在windows测都可以印8组 为什么在linux只剩4组
跟什么int大小有关系吗
楼主: Wardyal (Wardyal)   2023-03-01 09:39:00
还是是我其他地方没注意到
作者: walter741225 (瓦特)   2024-03-01 09:45:00
如果你想要自己debug 有一个方向就是把两个sizeof都print出来 你应该会发现两个环境的数值不同
作者: surimodo (好吃棉花糖)   2024-03-01 09:45:00
阿肥看估狗的 = =
作者: walter741225 (瓦特)   2024-03-01 09:46:00
咕狗sizeof int* 你就会知道为什么会因为环境不同而数值不一样了
作者: HGK (HGK)   2024-03-01 09:47:00
有人打了
楼主: Wardyal (Wardyal)   2024-03-01 09:47:00
喔喔 我看一下所以sizeof(资料型态*) 抓出来的都是指标大小而已用哪个资料型态其实都会是一样的吗
作者: crimsonmoon9 (绯月)   2024-03-01 09:49:00
你的windows是用32位元的吗
楼主: Wardyal (Wardyal)   2024-03-01 09:51:00
不是
作者: k300plus (300plus)   2024-03-01 09:51:00
回10楼的问题 对
作者: DJYOSHITAKA (Evans)   2024-03-01 09:51:00
存地址的bit数在两个系统上不同
作者: crimsonmoon9 (绯月)   2024-03-01 09:52:00
关键字data model看一下
楼主: Wardyal (Wardyal)   2024-03-01 09:52:00
喔喔 那我耍白痴了 之前sizeof(char*)就只是赛到
作者: surimodo (好吃棉花糖)   2024-03-01 09:52:00
有没有一种可能 以前用的char写法也是不安全写法= =
作者: tzyysang (tzyysang)   2024-03-01 09:53:00
请问你们公司是不能连google只能上ptt吗= =
楼主: Wardyal (Wardyal)   2024-03-01 09:53:00
问问看 对阿
作者: tsukiyo99 (OωO)   2024-03-01 11:06:00

Links booklink

Contact Us: admin [ a t ] ucptt.com