当前位置:   article > 正文

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/259555
推荐阅读
相关标签
  

闽ICP备14008679号