cyl010001 发表于 2018-2-16 11:00:42

*解引用的问题

图片的*(array+1)是一个地址,还是数组的一个元素?

ba21 发表于 2018-2-16 11:23:17

*解引用
你就理解为取值。

取值那么取出来的就是指针指向的值(当然这个值也可能是指向另一个地址的地址)。

夕颜梦雨 发表于 2018-2-16 19:47:05

*有两层含义:
1.表示这个变量是一个指针
2.取值:返回指针所指向的地址的值------->简言之,就是取"值"

cyl010001 发表于 2018-2-16 21:20:05

夕颜梦雨 发表于 2018-2-16 19:47
*有两层含义:
1.表示这个变量是一个指针
2.取值:返回指针所指向的地址的值------->简言之,就是取"值"

上图是小甲鱼课程里的代码,按你的意思2就是取值,那这个*(array+1)就应该是一个值,但实际打印出来,却是一个地址!这又做何解释?

夕颜梦雨 发表于 2018-2-16 22:17:54

本帖最后由 夕颜梦雨 于 2018-2-16 22:22 编辑

cyl010001 发表于 2018-2-16 21:20
上图是小甲鱼课程里的代码,按你的意思2就是取值,那这个*(array+1)就应该是一个值,但实际打印出来,却 ...



%d是输出整型,%p是输出地址的

cyl010001 发表于 2018-2-16 22:51:54

夕颜梦雨 发表于 2018-2-16 22:17
%d是输出整型,%p是输出地址的

没看明白感觉你不是在回答我上面的问题

夕颜梦雨 发表于 2018-2-16 23:00:12

cyl010001 发表于 2018-2-16 22:51
没看明白感觉你不是在回答我上面的问题

*解引用,就是取值

但是你输出的时候并没有用你定义的数组对应的类型,而是用到了%p

%p这个玩意儿是用来输出地址的

能输出你数组里的值吗

你数组是的数据类型是整型,你应该用%d输出

wjp 发表于 2018-2-17 02:22:00

二维数组第一个元素的地址是*(*array),*array是它的第一行元素的首地址*(array+1)直接跳的第二行了

林二捆 发表于 2018-8-4 10:09:25

这个课题叫什么名字,我想去看看

sunxu123 发表于 2019-7-21 09:56:45

看成一维数组的话,array【1】和&array【1】是一样的,二维的话,就要&array【1】【0】。但这个二维 的为啥这样,我猜是看成一维数组......

never_too_late 发表于 2020-3-1 15:06:52

%p是16进制显示

magicpower 发表于 2020-3-21 03:06:55

对于任意大于1的维度的数组,你用一个*,取得都是一个地址,这里要注意的是,取得是地址,而不是指针

magicpower 发表于 2020-3-21 03:11:49

一个n维数组,总共有n+1个类型大小

rty123 发表于 2020-3-21 07:35:29

他默认是第一个地址然后加一 就是 后一个地址

召唤师 发表于 2020-4-2 15:47:15

array是数组名也是地址,所以对地址+1(array+1)之后也是地址,那么对地址解引用就是第二行第一个元素的值
页: [1]
查看完整版本: *解引用的问题