zoukankan      html  css  js  c++  java
  • 29.指针数组和数组指针

    • 指针数组
    int *p1[10];

    数组的每一个元素都是地址,sizeof(p) = 40;

    • 数组指针
    int(*p2)[10];

    数组的每一个元素都是一个数组的首地址,sizeof(p2) = 4;

    实现不改变原来的数组元素位置来实现冒泡排序,使用指针数组

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 void main()
     5 {
     6     int a[10] = { 0, 9, 2, 8, 3, 7, 4, 6, 5, 10 };
     7     int *p[10];//指针数组
     8     for (int i = 0; i < 10; i++)
     9     {
    10         p[i] = a + i;
    11     }
    12 
    13     //冒泡排序
    14     for (int i = 0; i < 10 - 1; i++)
    15     {
    16         for (int j = 0; j < 10 - 1 - i; j++)
    17         {
    18             if (*p[j]>*p[j + 1])
    19             {
    20                 int *ptemp = p[j];
    21                 p[j] = p[j + 1];
    22                 p[j + 1] = ptemp;
    23             }
    24         }
    25     }
    26 
    27     //输出
    28     for (int i = 0; i < 10; i++)
    29     {
    30         printf("
    %d  %d", a[i], *p[i]);
    31     }
    32 
    33     system("pause");
    34 }

     数组指针存储一个二维数组

    int a[3][4] = { 0 };
        for (int i = 0; i < 12; i++)
        {
            a[i / 4][i % 4] = i;
        }
    
        for (int *p = &a[0][0]; p < a + 3; p++)
        {
            printf("%d
    ", *p);
        }
    
        int(*p)[4] = a;//指针数组
    
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                printf("%d    ", p[i][j]);
            }
            printf("
    ");
        }
  • 相关阅读:
    join_tab计算代价
    outer join test
    突然觉得mysql优化器蛮简单
    将数据库字段从float修改为decimal
    小米初体验
    简述安装android开发环境
    Rust语言:安全地并发
    awk里的各种坑
    ubuntu下使用C语言开发一个cgi程序
    Ubuntu下安装和配置Apache2
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8308763.html
Copyright © 2011-2022 走看看