[问题] 指标

楼主: GooLoo (平凡)   2015-08-14 20:01:43
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
devc
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
int main(int argc, char *argv[]) {
char a;
printf("%d\n",sizeof(a));
char *b=&a;
printf("%d\n",sizeof(b));
int *c=&a;
printf("%d\n",sizeof(c));
return 0;
}
补充说明(Supplement):
刚学指标, 想看一下系统char占几byte,想看指针在int char各占几byte
请问这边sizeof内写abc对吗?
我印出来是1 4 4 => 我windows是32-bit
so.........对?
作者: IcecreamHsu (冰淇淋)   2015-08-14 21:29:00
sizeof(*b)和sizeof(b)不一样
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-14 21:55:00
不然你觉得是多少。
楼主: GooLoo (平凡)   2015-08-14 22:07:00
回I大:sizeof内*b和b这边正是我没把我的地方回M大:我的对是指..."我得4跟我预期相同, 所以写b是对的囉?因为担心是运气好,刚好是4,因为是要用*b还是b没把握
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-14 22:12:00
又不是在考试,有什么把不把握的,何不通通都测一测
楼主: GooLoo (平凡)   2015-08-14 22:13:00
刚试sizeof(*b)是1, 这1好像是资料大小,不是指标变量大小
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-14 22:13:00
b *b c *c都测一测
楼主: GooLoo (平凡)   2015-08-14 22:14:00
也是!哈~~刚试了一下, 好像有点通了!感谢^^
作者: anyoiuo   2015-08-17 14:58:00
*c是有问题的,因为只有1 byte你却读了4 byte但应用在sizeof Macro上是没问题,只是提醒你形态要注意

Links booklink

Contact Us: admin [ a t ] ucptt.com