zoukankan      html  css  js  c++  java
  • C/C++(指针数组)

    指针数组

    指针数组的本质是数组,数组指针的本质是指针
    一个数组中的各个元素都是字符指针,即为字符指针数组,或者指针数组。

    int arr[] = {1,2,23,45,6};//整形数组
    char cArr[] = {'a','b','v','d'};//字符数组
    char a,b,c,d;
    char * cpArr[] = {&a,&b,&c,&d};
    //<=> {char*,char*,char*,char*}字符数组指针
    char *pa ="China",*pb = "America",*pc = "Canada",*pd = "Japan";
    char * cppArr[] = {pa,pb,pc,pd};//放进去的是地址
    //<=>
    for(int i = 0;i < 4;i++) {
        printf("%p %s
    ",cppArr[i],cppArr[i]);
    }
    char * pArr[] = {"China","Amercia","Canada","Japan"};//指针数组存放的事字符串的地址
    for(int i = 0;i < 4;i++) {
        printf("%p %s
    ",cppArr[i],cppArr[i]);
    }//和上述输入的结果是一样的
    /*
    00404044 China
    0040404A America
    00404052 Canada
    00404059 Japan
    00404044 China
    0040404A America
    00404052 Canada
    00404059 Japan
    */
    

    排序:

    char * pArr[] = {"China","America","Canada","Japan"};
    for(int i = 0;i < 4;i++) {
        printf("%p %s
    ",pArr[i],pArr[i]);
    }
    int n = sizeof(pArr)/sizeof(*pArr);//sizeof(pArr);总的pArr的大小,*pArr是数组首元素的大小。
    char *pt;
    for(int i = 0;i < n-1;i++) {
        for(int j = i+1;j < n;j++) {
            if(strcmp(pArr[i],pArr[j]) > 0) {
                pt = pArr[i];
                pArr[i] = pArr[j];
                pArr[j] = pt;
            }
        }
    }
    printf("
    +++++++++++++++++++++++++++++++
    ");
    for(int i = 0;i < 4;i++) {
        printf("%p %s
    ",pArr[i],pArr[i]);
    }
    /*
    00404044 China
    0040404A America
    00404052 Canada
    00404059 Japan
    
    +++++++++++++++++++++++++++++++
    0040404A America
    00404052 Canada
    00404044 China
    00404059 Japan
    上述的字符串是放在data 的rodata段中,无法直接操作字符串,利用字符指针数组进行排序,将其的地址排序,实现数据的排序。相当于在图书馆里实现图书的排序,书库的书不动只把书的序号排序
    
    */
    

    启动进程时系统通过命令行传递给进程的参数,即main的参数。

    int main(int argc,char * argv[]) {
    //argc arg: argument(参数),c:count(个数)--参数个数
    //*argv *arg:指针数组,v vector(向量)---指针数组向量
    }
    

    "0"

    int   0; //0
    float 0.0;//0.0
    * NULL      //标识未初始化的指针,代表内存的零地址
    char '';//用于表示字符串结束的标志
    
    //假0
    char  '0';//'0'
    "0" '0'+'';//
    
  • 相关阅读:
    Unity3D技术之从 Cinema 4D 中导入对象浅析
    Unity3D技术之从 Maya 中导入对象浅析
    如何在Unity中实现文字的渐隐效果?
    在Unity中如何实现重复循环效果?
    如何在Unity中显示当前游戏运行帧数?
    Unity3D技术之资源数据库 (AssetDatabase)详解
    PaaS和SaaS的区别是什么?
    数据库链接失败错误ERROR com.alibaba.druid.pool.DruidDataSource
    WampServer3.0服务器端开启ssl认证后重启Apache失败,解决办法
    在SublimeText3中想使用快捷键调出插件ColorPicker不起作用办法解决
  • 原文地址:https://www.cnblogs.com/intelwisd/p/8321480.html
Copyright © 2011-2022 走看看