在C语言中"char *p"占用多少内存空间
我觉得应该是1个字符的空间,因为char型的数据类型是占用一个字符空间的,可是书本上却指明是2个字符,又没有解释,所以我想寻求各位的帮助,谢谢哦...
我觉得应该是1个字符的空间,因为char 型的数据类型是占用一个字符空间的,可是书本上却指明是2个字符,又没有解释,所以我想寻求各位的帮助,谢谢哦
展开
6个回答
展开全部
在C语言中指针是一个unsigned 类型的无符号数,其所占内存字节一般是和计算机的CPU字长是一致的,拿32位计算机来说,指针所占的内存空间一般为4个字节,不管char *还是int *抑或是float *,都是4个字节。
程序员可以使用sizeof运算符获取数据类型或者某个变量的内存所占字节数。比如
printf("%d\t%d\t%d\n", sizeof(char *), sizeof(int *), sizeof(float *));
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
char *p;
算做一个数组 char p[];
数组最末尾都加'\0'作结束!而'\0'也占一个字节!
在加本身一个,所以就两个了!
补充:跟机器位数无任何关系!我自己测过的!
算做一个数组 char p[];
数组最末尾都加'\0'作结束!而'\0'也占一个字节!
在加本身一个,所以就两个了!
补充:跟机器位数无任何关系!我自己测过的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *p是一个int型,指向的是char型,一个byte,本身是占4个byte.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是32位机器,那么p占用4个字节
如果是是16位机器,就是占用2个字节
这主要是根据机器的硬件判断的
如果是是16位机器,就是占用2个字节
这主要是根据机器的硬件判断的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sizeof()函数检测一下就行了。
例如:
#include<stdio.h>
void main()
{
char c = 'a';
char *p = &c;
printf("%d\n",sizeof(p));
}
运行以后就能看到结果。
例如:
#include<stdio.h>
void main()
{
char c = 'a';
char *p = &c;
printf("%d\n",sizeof(p));
}
运行以后就能看到结果。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询