|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ char类型指针大小是4 为什么+1只加1?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1942
人关注过本帖
标题:
char类型指针大小是4 为什么+1只加1?
只看楼主
加入收藏
darklotte
等 级:
新手上路
帖 子:2
专家分:0
注 册:2020-11-20
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:4
char类型指针大小是4 为什么+1只加1?
char类型指针是4,char *pc;pc=pc+1; sizeof(char)=1字节,经过pc=pc+1之后,pc加了1个字节
搜索更多相关主题的帖子:
char
指针
大小
类型
pc
2020-11-20 23:24
举报帖子
使用道具
赠送鲜花
请输入密码
等 级:
论坛游民
威 望:
5
帖 子:35
专家分:84
注 册:2020-11-19
第
2
楼
收藏
得分:7
指针本身地址是常量值,4个字节不变。
指针指向下一个char数据,也就是指向下一个字节,故指向引用的字节+1。
Bug易改,码风难移。
有事离开,无事灌水。
2020-11-21 08:39
举报帖子
使用道具
赠送鲜花
darklotte
等 级:
新手上路
帖 子:2
专家分:0
注 册:2020-11-20
第
3
楼
收藏
得分:0
char类型指针大小是4
p=p+1 应该加4
为什么加1呢
2020-11-21 20:09
举报帖子
使用道具
赠送鲜花
llc_xz
等 级:
论坛游民
威 望:
1
帖 子:4
专家分:14
注 册:2016-7-5
第
4
楼
收藏
得分:7
sizeof(char)=1字节 表示一个字符变量占用1个字节,字符型指针加1表示指向下一个字符,不管指针是几个字节,指针加1对应加几个字节是按指针指向的数据类型所占的字节数执行的,字符型占用1个字节,所以字符型指针值加1,就是地址加1,指向下一个字符,如果是加4,指针将指向当前字符后面的第4个字符了。
总结:指针加1,即指针指向的数据类型占用几个字节指针值就加几(指针值本身就是内存地址,内存地址的编址是按字节进行的。),只有这样指针才可以正确指向该数据类型的下一个值。
[此贴子已经被作者于2020-11-22 06:29编辑过]
2020-11-22 06:23
举报帖子
使用道具
赠送鲜花
zbjzbj
来 自:郑州
等 级:
贵宾
威 望:
52
帖 子:633
专家分:3045
注 册:2011-4-22
第
5
楼
收藏
得分:7
旅馆7楼第一个房间是7001,下一个房间那就是7002,这就是指针(指向房间的地址编号)+1
不是7005
2020-11-22 14:49
举报帖子
使用道具
赠送鲜花
自由而无用
等 级:
贵宾
威 望:
14
帖 子:61
专家分:1456
注 册:2021-8-9
第
6
楼
收藏
得分:0
eg:
int *q;
char *p;
char a, b;
char x[10];
&q = 0x12ff94;
&p = 0x12ff98;
&a = 0x12ff9c;
&b = 0x12ff9d;
&x[0] = 0x12ff9e;
&x[1] = 0x12ff9f;
p = x = 0x12ff9e;
p + 1 = &x[1] = 0x12ff9f;
q = (int *)p = 0x12ff98;
q + 1 = p[4] = &x[4];
[此贴子已经被作者于2021-8-10 10:06编辑过]
2021-08-10 10:03
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
char类型指针大小是4 为什么+1只加1?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.048892 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved