在思考数组名时忽然有些疑惑,经验证和查证后,总结为:
数组名是一个符号,表示数组在内存中的起始位置,类似于goto语句标签或宏定义,但也有所不同,goto语句标签就是一个标签,没有地址,不占内存。
数组名不占空间,不是指针常量,更不是变量。
数组名直接输出则为数组首元素的地址,对数组名取地址后实际上得到的是整个数组的地址。
上图中,数组首地址为6356720,直接用数组名加1后,指向的是数组的第二个元素,而对数组名取地址再加一后,直接跳过了40字节,也就是跳过了整个数组。
在思考数组名时忽然有些疑惑,经验证和查证后,总结为:
数组名是一个符号,表示数组在内存中的起始位置,类似于goto语句标签或宏定义,但也有所不同,goto语句标签就是一个标签,没有地址,不占内存。
数组名不占空间,不是指针常量,更不是变量。
数组名直接输出则为数组首元素的地址,对数组名取地址后实际上得到的是整个数组的地址。
上图中,数组首地址为6356720,直接用数组名加1后,指向的是数组的第二个元素,而对数组名取地址再加一后,直接跳过了40字节,也就是跳过了整个数组。