鱼C论坛

 找回密码
 立即注册
查看: 2595|回复: 4

C语言中为什么函数形参中二级指针和一级指针指输出的结果一样

[复制链接]
发表于 2017-6-8 16:15:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void show(char **x,int n)
{
        int i;
        for (i=0;i<n;i++)
        {
                puts(x[i]);
        }
}
int main()
{
        char *book[]={
                "《荒野的呼唤》",
                "《时光之轮》",
                "《老人与海》",
                "《教父》",
                "《基督山伯爵》",
                "《地海传说》",
        };
        int size=sizeof(book)/sizeof(book[0]);
        char **p=book;
        show(p,1);
        show(book,size);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-8 18:17:22 | 显示全部楼层
你的意思是把**x改为*x是一样的吗?还是怎么理解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-8 19:22:48 | 显示全部楼层
newu 发表于 2017-6-8 18:17
你的意思是把**x改为*x是一样的吗?还是怎么理解?

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-11 22:01:57 | 显示全部楼层
额    sizeof(book) 和sizeof(book[0])  是一个地址 ,数组名字 指向的是第一个地址
所以 他俩是一个地址  是同样的长度类型   都是4字节 所以当他们相除的时候   结果是1;所以输出的结果相同  
没有工具 没敲代码 可能不对. 也可能我没理解你要问的问题....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 00:09:00 | 显示全部楼层
怎么会一样?你试试这个,肯定编译不过去
#include <stdio.h>
void show(char *x,int n)
{
    int i;
    for (i=0;i<n;i++)
    {
        puts(x[i]);
    }
}
int main()
{
    char *book[]={
        "《荒野的呼唤》",
        "《时光之轮》",
        "《老人与海》",
        "《教父》",
        "《基督山伯爵》",
        "《地海传说》",
    };
    int size=sizeof(book)/sizeof(book[0]);
    char **p=book;
    show(p,1);
    show(book,size);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-1 18:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表