关于实参为char二维指针而形参为char类型的疑惑解决办法
关于实参为char二维指针而形参为char类型的疑惑
char **snake;
: //初始化 snake
:
int Eat(char s[2])//声明函数
Eat(snake[0]); //疑惑处
请问为什么能这样调用,传给形参的又是什么呢?
------解决方案--------------------
snake[0]是一个一级指针,函数的形参也是一个一级指针啊……咋不能调用
------解决方案--------------------
数组的首地址就是个指针,
------解决方案--------------------
其实形参就是声明了一个指向包含两个元素的char类型指针。
snake是指向指针的指针,因此*snake是就是指向char的指针。
所以可以调用的。
------解决方案--------------------
int Eat(char s[2])
形参为 char *
snake[0] 为char*
char **snake;
: //初始化 snake
:
int Eat(char s[2])//声明函数
Eat(snake[0]); //疑惑处
请问为什么能这样调用,传给形参的又是什么呢?
------解决方案--------------------
snake[0]是一个一级指针,函数的形参也是一个一级指针啊……咋不能调用
------解决方案--------------------
数组的首地址就是个指针,
------解决方案--------------------
其实形参就是声明了一个指向包含两个元素的char类型指针。
snake是指向指针的指针,因此*snake是就是指向char的指针。
所以可以调用的。
------解决方案--------------------
int Eat(char s[2])
形参为 char *
snake[0] 为char*