黑马程序员技术交流社区

标题: 指针区分类型的原因 [打印本页]

作者: bao9107    时间: 2014-3-18 14:40
标题: 指针区分类型的原因
本帖最后由 bao9107 于 2014-3-24 13:48 编辑

疑问?不同数据类型的指针都是8个字节,为什么还要分类型捏?
作者: 董月峰    时间: 2014-3-18 15:16
不同类型的数据所占内存不同。指针一般是用来指向内存的。


指针这个小纸条所占内存都是8个字节,但是小纸条指向的内容占多少字节的内存可不一定啊
作者: 77媛儿    时间: 2014-3-18 15:32
如果不区分类型 会导致读取地址错误,定义类型是为了赋值是后用的
作者: 77媛儿    时间: 2014-3-18 15:34
详细的说
char name[10]="abc";
char *p;
p=name;
如果定义成int *p;在读取数组内存的时候会一次读取4个字节,导致读取的结果错误
作者: 沙洲冷    时间: 2014-3-18 16:04
就像楼上所说,如果定义成char *p,p++时每次只移动一个字节,如果定义成int *p,p++时则每次移动四个字节。如果不明确指针指向什么类型数据时,会导致读取的数据有错误。
作者: bao9107    时间: 2014-3-18 16:37
77媛儿 发表于 2014-3-18 15:34
详细的说
char name[10]="abc";
char *p;

噢 明白了 谢了哈:victory:~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2