C语言指针变量内存大小,指针变量占用的内存空间大小说明

指针变量占用的内存空间大小根据所使用的操作系统及编译环境而定,指针类型占用的字节数是不同的。

一般而言:

16位机器的代码时,指针占2个字节

32位机器的代码时,指针占4个字节

64位机器的代码时,指针占8个字节

对于一个具体的测试环境,可以用下面的语句精确的知道指针类型占用的字节数:

printf( " %d\n " ,  sizeof(int *) ) ;

测试环境:Ubuntu 64位

查看系统的版本为Ubuntu18.04 64位

0859c5a323aed9b410382f5453e72516.png

struct TRef

{

char* before;

char* after;

};

int main()

{

struct TRef r ;

printf("sizeof(int) = %d\n", sizeof(int));

printf("sizeof(r) = %d\n", sizeof( r ) );

printf("sizeof(r.before) = %d\n", sizeof(r.before));

printf("sizeof(r.after) = %d\n", sizeof(r.after));

printf("&r.before = %p\n", &r.before);

printf("&r.after = %p\n", &r.after);

return 0;

}

运行结果:

79decf0d9d12dcf8dcbd8f332466fea6.png

可见指针变量在64位机器中是占用8个字节的内存空间大小的

同样的程序运行于32位机器时,测试环境windows下Qt creater32位环境下:

f389aa649224be9d4b3a27e98685dd1e.png

e5fcc076f84be825a9e9d575acd5870f.png

在网上看到还有这种言论,真是误人子弟

d952eaa106c5e10cd3def3e742812c0e.png

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值