两个人 发表于 2014-4-29 22:37:08

指针的区别!

char *a和int *a的区别是什么?今天刚看到。想不明白:handshake

sidfate 发表于 2014-4-29 22:50:42

指针指向的数据类型不一样。

theonethatgot 发表于 2014-4-29 23:23:35

如果定义char *a,那么a指针指向的是数据类型必须是char的;如果定义int *a,那么a指针指向的是数据类型必须是int的;比如intnum = 65;char *a = #      printf("%c",*a)我试了一下这个,运行结果还是A,但还是遵循一下int型指针指向int型数据。但是 char ch = 'A'; int *num = &ch;       printf("%d",*num);却不正确,你可以试一下。

longtian 发表于 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位二进制数据,,这样取的值就不对了.这样是一定会出错的,因此这也就成了语法规则.
页: [1]
查看完整版本: 指针的区别!