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'+'';//
    
  • 相关阅读:
    Snmp学习总结(四)——WinServer2003安装和配置SNMP
    Snmp学习总结(三)——Win7安装和配置SNMP
    Snmp学习总结(二)——WinXP安装和配置SNMP
    Snmp学习总结(一)——Snmp的基本概念
    Snmp学习总结系列——开篇
    MyEclipse使用总结——使用MyEclipse打包带源码的jar包
    (转载)反向代理服务器的工作原理
    AQS3---出队(凌乱,供参考,先看AQS2)
    AQS1---走向稳定态
    hread.interrupt()到底意味着什么
  • 原文地址:https://www.cnblogs.com/intelwisd/p/8321480.html
Copyright © 2011-2022 走看看