鱼C论坛

 找回密码
 立即注册
查看: 1906|回复: 3

指针的区别!

[复制链接]
发表于 2014-4-29 22:37:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
char *a和int *a的区别是什么?今天刚看到。想不明白:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-29 22:50:42 | 显示全部楼层
指针指向的数据类型不一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-29 23:23:35 | 显示全部楼层
如果定义char *a,那么a指针指向的是数据类型必须是char的;如果定义int *a,那么a指针指向的是数据类型必须是int的;比如int  num = 65;  char *a = #        printf("%c",*a)我试了一下这个,运行结果还是A,但还是遵循一下int型指针指向int型数据。但是 char ch = 'A'; int *num = &ch;       printf("%d",*num);却不正确,你可以试一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-30 01:40:09 | 显示全部楼层
指针的大小都是4字节,类型定义只是对指针变量指向的内容做的声明,比如int *a,指向某一变量x,而这个x必须是int型,其实这个规定 就是为了防止获取的数据是正确的.
================================================================
举个例子,声明的两个指针变量char *a和int *b,以及char A和int B,
前面说了指针变量无论什么类型都是四字节,转到此例,我们用下划线代表一位,A只有一字节=8bit,即_ _ _ _ _ _ _ _,而B有4字节=32bit,_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
如果我们用*a指向A的首地址,而这两个变量的容量是一样的,所以用指针获取数据不会出错,如果*a指向B,那么同理,只能去到B的前8位二进制数据,,这样取的值就不对了.这样是一定会出错的,因此这也就成了语法规则.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 08:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表