数组名和指针能够等价的情况
Posted rocklee25
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组名和指针能够等价的情况相关的知识,希望对你有一定的参考价值。
摘自《c专家编程》c语言中,数组和指针不能够等价,在下面情况下,数组和指针能够等价使用。
规则 1. 表达式中的数组名被编译器当做一个指向该数组第一个元素的指针。char *p = array_name;
规则 2. 下标总是与指针的偏移量相同。array_name[index]与 *(p+index)
规则 3. 在函数参数的声明中,数组名被编译器当做指向该数组第一个元素的指针
void func(char *p)与void func(char p[])两种函数声明,函数调用时,func(array_name)等价于func(p)
以上是关于数组名和指针能够等价的情况的主要内容,如果未能解决你的问题,请参考以下文章
C 语言数组 ( 一维数组形参退化 | 二维数组形参退化 | 函数形参等价关系 )
C 语言数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )