看一下图片,为什么函数里用**p接收数组名a?对(char **p)不是很理解。
3条回答 默认 最新
- yun6853992 2022-02-22 20:57关注
你需要了解这几个知识点:
1:char * p;表示的初始化, p指向的是一个char变量的地址。
2:char a[]; char数组,如果单纯的写数组名a,其实就是数组的首地址。 比如char a[] = "abc"; printf("%s \n",a); a其实指向的是数组的首地址
3:结合起来理解 char *a[],其实就是二维数组,而a其实是二维数组的首地址,*p是第一个字符串的位置
4:函数传参时 定义成char *p;传入参数一维数组char a[];的数组名a;,隐含的含义就是数组的首地址的位置 char **你可以理解为取一维数组a的地址的地址,而char a[]; a隐含的是一个地址,char * a[];换个角度就是存储了一个一维数组地址的char *类型,有点绕,可能我也说不清,char *p;p执向的是一个地址,char ** p;p执行的是一个地址的地址; char a[] = "abc";数组a隐含a指向数组的首地址,然后char *a[];指向数组首地址的地址,然后按地址+1,其实就是,移动的其实就是一个数组位。(可以用指针的方式打印这个二维数组内的字符串理解一下)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。