|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在使用指针数组的过程又一些疑问不理解,希望求助大佬给予帮助
问题描述:
- #include <stdio.h>
- int main(void)
- {
- char str_01[] = {"《C程序设计》"}, str_02[] = {"《算法与数据结构》"};
- char *p[2]; // p 是一个拥有两个元素的指针数组
- p[0] = str_01;
- p[1] = str_02;
- for(int i = 0; i < 2; i++)
- {
- printf("第%d本书:%s\n", i+1, *(p+i));
- }
- return 0;
- }
复制代码
`(p+i)` 表示数组的第i元素,`*(p+i)` 表示解引用数组的第i元素的地址。但是让我困惑的一点是 `(p+i)` 不就是 str_01数组的地址吗,为什么还要解引用?
本帖最后由 jhq999 于 2023-2-25 16:18 编辑
p[0]=str_01//数组p第1个元素储存着字符串指针str_01的值
p+0=&p[0]//p+0是数组p第1个元素的地址,
|
|