例子
代码如下 | 复制代码 |
#include |
首先:
在C中,对一个指针加1的结果就是对该指针增加一个储存单元,对鼠族而言,地址会增加到下一个元素的地址,而不是下一个字节。
于是乎,我们可以看到他的地址被输出了:
代码如下 | 复制代码 |
short double |
关于为何不同,其实是因为short和double占的字节数是不一样的。(short使用两个字节,double则是八个)
* (dates + 2)与*dates+2并不同,因为*的优先级高于*,所以会优先运算,相当于对dates当前指向的值加了2.
再来看看另一个:
代码如下 | 复制代码 |
#include |
可以看到* (days + index)其实和days[index]是一个效果的。
在函数中,我们可以这么传入数组int sum(int * ar),但是这样只能得到首元素的地址,却不知道数组个数(自然我们能把数组个数当成第二个参数传入),还可用int ar[]代替,这是指向数组的指针,是一个指针(因为重要所以说两遍),为什么强调这一点,看这个程序就知道了:
代码如下 | 复制代码 |
#include 来看看输出: Te size of ar is 4 bytes. |
调用函数的时候输出的是4,这是因为函数内,它并非是一个数组,只是一个int类型的指针,int类型为4个字节,而在main中,数组本身由10个int类型的数组成,所以是40。
请随时记得:* (days + index)其实和days[index]是一个效果的
除了指定数组大小外,还有什么办法指定:
代码如下 | 复制代码 |
#include |
答案是一样的,因为索引从0开始,所以marbles + SIZE指向数组结尾后下一个元素(再往后结果是未知的)。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级