zoukankan      html  css  js  c++  java
  • 二级指针与二维数组的秘密【二者不等】

    View Code
    第一种情况
    
    char buf[10][5];         //可以解析为有10行字符串 每行5个字节
    char (*p)[5] = buf;         //数组的指针p指向数组[5]   指针++ 跨度为5字节
    char **tp = (char**)buf; //二级指针tp指向数组[10][5] 指针++ 跨度也就是10X5 = 50个字节
    
    //对第一行进行赋值
    strcpy(buf[0],"abc");   
    strcpy(p[1],"123");
    
    //三者地址一样
    printf("%s %s \n",buf[0],buf[1]);     //成功打印 解析度为一行 buf[1]一样有效
    printf("%s %s \n",p[0],p[1]);       //成功打印 解析度为一行 p[1]一样有效
    printf("%s",tp[0]);                //报错,解析度为整个数组,tp[1]会打印出未知的地址,错误的语法。
    
    
    第二种情况
    
    int fun(char**tp,char(*op)[5],char p[][5])
    {
        //三者地址都一样,前两者等价
        printf("%s \n",p[0]);          //成功打印 解析度为一行 p[1]一样有效
        printf("%s \n",op[0]);         //成功打印 解析度为一行 op[1]一样有效
        printf("%s",tp[0]);            //报错,解析度为整个数组,tp[1]会打印出未知的地址,错误的语法。
        return 0;
    }
    
    int main()
    {
        char buf[10][5];         //解析为有10行字符串 每行5个字节
        //对第一行进行赋值
        strcpy(buf[0],"abc");   
        fun((char**)buf,buf,buf);
        return 0;
    }
  • 相关阅读:
    flume未解之谜
    flume source,sinks类型官方翻译
    flume-event类
    flume课件(连)
    source监控端口,telnet写入此端口。sinks指定目录,文件以默认时间滚动生成
    linux命令拾遗
    nginx内置变量
    nginx.conf
    hive事物开启
    hiveHA
  • 原文地址:https://www.cnblogs.com/guyan/p/2311436.html
Copyright © 2011-2022 走看看