在C语言中"char *p"占用多少内存空间

我觉得应该是1个字符的空间,因为char型的数据类型是占用一个字符空间的,可是书本上却指明是2个字符,又没有解释,所以我想寻求各位的帮助,谢谢哦... 我觉得应该是1个字符的空间,因为char 型的数据类型是占用一个字符空间的,可是书本上却指明是2个字符,又没有解释,所以我想寻求各位的帮助,谢谢哦 展开
 我来答
吉祥二进制
高粉答主

2015-05-27 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84577

向TA提问 私信TA
展开全部

  在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 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
泣阳阳a8
2006-03-25 · 超过19用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:0
展开全部
char *p;
算做一个数组 char p[];
数组最末尾都加'\0'作结束!而'\0'也占一个字节!
在加本身一个,所以就两个了!
补充:跟机器位数无任何关系!我自己测过的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thinkinnight
2006-03-25 · TA获得超过1338个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:358万
展开全部
char *p是一个int型,指向的是char型,一个byte,本身是占4个byte.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
andy_quan
2006-03-25 · 超过12用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
如果是32位机器,那么p占用4个字节
如果是是16位机器,就是占用2个字节
这主要是根据机器的硬件判断的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亚月月垂盘B
2006-03-25
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
用sizeof()函数检测一下就行了。
例如:
#include<stdio.h>
void main()
{
char c = 'a';
char *p = &c;

printf("%d\n",sizeof(p));
}

运行以后就能看到结果。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式