zoukankan      html  css  js  c++  java
  • *p++,p++,*(p++)、(*p)++、(*p)[n],*p[n]的一些资料收集

    p++、*p++、*(p++)是在p所指向的地址上加1。

     1 //*(p++)等同于*p++ 
     2 #include<stdio.h> 
     3 int main(void)
     4 {
     5     int *p;
     6     int a[5]={1,4,3,2,5};
     7     p=a;
     8     printf("首地址p是%p
    ",p);
     9     printf("第一个数是%d
    ",*p);
    10     printf("*(p++)对应的输出为%d
    ",*(p++)); 
    11     printf("*(p++)之后p的地址是%p
    ",p);
    12     printf("*(p++)之后对应的*p是%d
    ",*p);
    13 //    printf("(*p)[4]的结果为%d
    ",*p[4]); 
    14 //    printf("%p
    ",p++);
    15 //    printf("%p
    ",*p++);
    16 //    printf("%p
    ",*(p++));
    17     return 0;
    18 }

    *(++p)与*++p相同

     1 //*(++p)与*++p相同 
     2 #include<stdio.h>
     3 int main(void)
     4 {
     5     int a[5]={1,3,5,2,4};
     6     int *p;
     7     p=a;
     8     printf("首地址为:%p
    ",p);
     9     printf("第一个数为:%d
    ",*p);
    10     printf("*(++p)对应的输出为:%d
    ",*(++p));
    11     printf("*(++p)之后的p是:%p
    ",p);
    12     printf("对应的*p是:%d
    ",*p);
    13     return 0;
    14 }

    (*p)++:是在p所指向的数据上加1

     1 #include<stdio.h> 
     2 int main(void)
     3 {
     4     int a=1;
     5     int *p;
     6     p=&a;
     7 //    printf("首地址p是%p
    ",p);
     8 //    printf("第一个数是%d
    ",*p);
     9     printf("%d
    ",(*p)++); 
    10 //    printf("*(p)++之后p的地址是%p
    ",p);
    11     printf("%d
    ",a);
    12 //    printf("(*p)[4]的结果为%d
    ",*p[4]); 
    13 //    printf("%p
    ",p++);
    14 //    printf("%p
    ",*p++);
    15 //    printf("%p
    ",*(p++));
    16     return 0;
    17 }

    1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。可以这样来用:

     

     1 #include<stdio.h>
     2 int main(void)
     3 {
     4     int* p[2];               //是一个指向int型的指针数组。即: p是包含两个元素的指针数组。
     5                              //指针指向类型 是int型 
     6     int a[3]={1,2,3};
     7     int b[4]={4,5,6,7};
     8     p[0]=a;
     9     p[1]=b;
    10     int i;
    11     printf("指针数组p[0]的结果:");
    12     for(i=0;i<3;i++)
    13     {
    14         printf("%d ",*p[0]+i);
    15     }
    16     printf("
    ");
    17     printf("指针数组p[1]的结果:");
    18     for(i=0;i<4;i++)
    19     {
    20         printf("%d ",*p[1]+i);
    21     }
    22     return 0;
    23 }

     (2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:

     1 #include<stdio.h>
     2 int main(void)
     3 {
     4     //此为n*2型的数组的指针用法,即行数不确定,列数确定。 
     5     int (*p)[2];    //相当于一个二维数组的用法,只是它是一个n行2列的数组
     6     int b[3][2]={{1,2},{3,4},{5,6}};
     7     p=b;
     8     int i,j;
     9     printf("(*p)[2]数组的结果为:
    ");
    10     for(i=0;i<3;i++)
    11     {
    12         for(j=0;j<2;j++)
    13         {
    14             printf("%d ",p[i][j]);
    15         }
    16         printf("
    ");
    17     } 
    18     return 0;
    19 }

    注意:

    (1)为行数确定、列数不确定,即为2*n型的。

    (2)为n*2型的数组的指针用法,即行数不确定、列数确定。

    对于(1)其等价形式如下:

     1 #include<stdio.h>
     2 #include<malloc.h> 
     3 int main(void)
     4 {
     5     int **array=(int **)malloc(sizeof(int *)*2);
     6     int a[3]={1,2,3};
     7     int b[4]={5,6,7,8};
     8     array[0]=a;
     9     array[1]=b;
    10     int i;
    11     printf("array[0]数组的元素为:
    ");
    12     for(i=0;i<3;i++)
    13     {
    14         printf("%d ",array[0][i]);
    15     }
    16     printf("
    ");
    17     printf("array[1]数组的元素为:
    ");
    18     for(i=0;i<4;i++)
    19     {
    20         printf("%d ",array[1][i]);
    21     }
    22     return 0;
    23 }

    参考文献:
    https://blog.csdn.net/DLUTBruceZhang/article/details/9268497?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase

    https://blog.csdn.net/nice__xixi/article/details/81004515?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

    https://blog.csdn.net/qq_39986161/article/details/81252523


  • 相关阅读:
    jQuery 小特效【文本框折叠隐藏,展开显示】【下拉菜单】【颜色渐变】【弹窗+遮罩】
    jQuery 【事件】【dom 操作】
    jQuery 【选择器】【动画】
    LINQ 小项目【组合查询、分页】
    LINQ 【高级查询】
    LINQ 【增、删、改、查】数据绑定
    WebFrom 【文件上传】
    【转】c# 字符串大小写混合转换
    【转】C#之继承
    类库,通用变量,is/as运算符,委托。
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/13326647.html
Copyright © 2011-2022 走看看