当前位置:首页 » 编程语言 » c语言求指针长度

c语言求指针长度

发布时间: 2023-08-18 01:51:08

A. c语言 如何输出指针所指向空间的大小

C语言无法输出指针所指向的空间的大小!

一般,我们获取乱友如一个变量所占内哗启存空间的方法为:sizeof(变量名或类型名),如:

inta;
intaa[10];
int*p=aa;
printf("sizeof(int)=%d ",sizeof(int));//现在的机器一般为32位或64位机,int类型占四个字节,所以输出4
printf("sizeof(a)=%d ",sizeof(a));//输出4
printf("sizeof(aa)=%d ",sizeof(aa));//输出4*10=40
printf("sizeof(p)=%d ",sizeof(p));//输出4?见下面说明
printf("sizeof(int*)=%d ",sizeof(int*));//输出4?见下面说明

指针变量定义:用来存储内存地址的变量。指针变量中存储的是内存地址数据(一个整型数),而不是真正的数据,真正的数据是在地址中存放的。所以,指针变告桥量实际上就是个整型变量,用sizeof命令去获取任意类型的指针变量都会得到4。

指针变量存储的是一个存储空间的首地址,究竟这个空间有多大,可以存储多少个数据,这是分配空间时所决定的。单独看一个地址值,是看不出其空间大小的。如:

int a;

int aa[10];

int *p ; //定义一个指针变量

p=aa ; //指向数组aa,aa的数据空间是40字节,10个整数

p=&a; //指向一个整型变量,它的存储空间是4字节,一个整数

B. C语言中指针的长度!

记住32位下的指针 都是4个字节可以简单的这么理解:一个基本的数据类型(包括结构体等自定义类型)加上“*”号就构成了一个指针类型的模子。这个模子的大小是一定的,与“*”号前面的数据类型无关。“*”号前面的数据类型只是说明指针所指向的内存里存储的数据类型。所以,在 32位系统下,不管什么样的指针类型,其大小都为 4byte。

C. 在C语言中一个指针占用多少字节。

指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节。



(3)c语言求指针长度扩展阅读:

1)指针的含义

指针不同于一般变量,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样比如说一个char1字节,可以存在0x0,也可以位于0xFFFFFFFF,比如你的32位系统。

2)指针的范围

指针长度为4,在64位操作系统下那么就都是8了,而和char占用1字节还是100字节无关,指针的范围只和机器字和系统有关。

3)变化的范围

如果你输出的是444,说明指针长度为4字节可以记录的地址范围是0x00000000~0xFFFFFFFF,这个范围才是指针变量的值。

4)指针的介绍

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。

热点内容
算法牛人左 发布:2025-02-05 15:31:02 浏览:438
php筛选功能 发布:2025-02-05 15:29:09 浏览:165
ip匹配服务器 发布:2025-02-05 15:10:35 浏览:909
php语法后 发布:2025-02-05 15:10:34 浏览:59
oppor9s怎么压缩文件 发布:2025-02-05 15:00:34 浏览:639
苹果耳塞怎么改安卓也能用 发布:2025-02-05 14:50:54 浏览:558
安卓如何鉴别手机真假 发布:2025-02-05 14:28:15 浏览:121
ffmpeglinux编译 发布:2025-02-05 14:28:04 浏览:545
服务器如何做界面 发布:2025-02-05 14:27:23 浏览:291
访问学者单位推荐意见 发布:2025-02-05 14:13:05 浏览:853