p=(int)malloc(100*sizeof(int));p++;这里p自加1,到底是加了几个字节呢??

 我来答
百度网友9529c38
2012-12-19
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
p一个字节也没加。
因为你的p是int型,malloc返回的内容却是你刚才分配的100个整型空间的头部地址,所以p以int型的身份保存了这个地址的数值,那么p++只是给p的数值加1。
不过如果你将p的内容依然当作地址来看的话,那么增加了1个字节,并不是整数应该有的4个字节(sizeof(int),有些编译器或许不同)。如果你想用指针的话,还是应该p=(int *),而不是int
更多追问追答
追问
对,我搞错了,那如果是p=(int*).........那自加是移动了几个字节呢??
追答
4个字节了,准确的说是sizeof(int),不过现代编译器一般都是4字节
柯依云5e
2012-12-19
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
p是指针类型,也就是一个int数组,长度一百,p++,指向下一个int数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT孤鹜
2012-12-19
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
4个字节
p只是单纯的int型指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式