生如夏花133 发表于 2019-10-10 23:16:11

C语言 指针的指针输出字符串

代码如下,*strings[]是指针数组,**p是指针的指针,那么p应该指的是*strings[]指针数组中存储的指针变量的地址,
*p指的是字符串的地址,**p指的是字符串的值,可是这里输出字符串的时候,为什么是用*(p+i)?



#include<stdio.h>
main()
{
        char *strings[]={"C language",
                "Basic"}
        char **p,i;
        p=strings;
        for (i=0;i<2;i++)
        {
                print("%s\n,*(p+i));
        }
}

V1, 发表于 2019-10-11 03:02:29

本帖最后由 V1, 于 2019-10-11 03:35 编辑

*(p+i)指向字符串

V1, 发表于 2019-10-11 03:04:55

**p应该是指向一个字符吧

xypmyp 发表于 2019-10-16 12:46:04

Have a look on this, you may understand how pointer works in 2D array

https://fishc.com.cn/thread-148659-1-1.html

就是要努力呀 发表于 2019-10-16 14:23:47

*(p + i)等价于strings
*P指向的就是strings这指针个数组

只会白给 发表于 2019-10-16 20:12:57

字符串的输出可以用地址实现
页: [1]
查看完整版本: C语言 指针的指针输出字符串