A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bao9107 中级黑马   /  2014-3-18 14:40  /  1589 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 bao9107 于 2014-3-24 13:48 编辑

疑问?不同数据类型的指针都是8个字节,为什么还要分类型捏?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
不同类型的数据所占内存不同。指针一般是用来指向内存的。


指针这个小纸条所占内存都是8个字节,但是小纸条指向的内容占多少字节的内存可不一定啊
回复 使用道具 举报
如果不区分类型 会导致读取地址错误,定义类型是为了赋值是后用的

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
详细的说
char name[10]="abc";
char *p;
p=name;
如果定义成int *p;在读取数组内存的时候会一次读取4个字节,导致读取的结果错误
回复 使用道具 举报 1 0
沙洲冷 来自手机 中级黑马 2014-3-18 16:04:06
报纸
就像楼上所说,如果定义成char *p,p++时每次只移动一个字节,如果定义成int *p,p++时则每次移动四个字节。如果不明确指针指向什么类型数据时,会导致读取的数据有错误。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
77媛儿 发表于 2014-3-18 15:34
详细的说
char name[10]="abc";
char *p;

噢 明白了 谢了哈:victory:~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马