zoukankan      html  css  js  c++  java
  • c语言之指针数组

    什么是指针数组?

    一个数组,里面存放的元素均为指针类型数据,被称为指针数组。

    其定义形式?

    int *name[4];

    基本实例一:利用数组初始化指针数组

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    
    int main() {
        int a[5] = { 1,2,3,4,5 };
        int* name[5] = { &a[0], &a[1], &a[2], &a[3], &a[4] };
        int i;
        for ( i = 0; i < 5; i++)
        {
            printf("%d
    ", *name[i]);
        }
        system("pause");
        return 0;
    }

    基本实例二:将字符串按照从小到大进行排序

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    
    //将字符串按其首字母进行排序
    //传入的是指针数组
    void sort(char* str[],int n) {
    
        char* tmp;
        int i, j, k;
        //从第0个位置开始,到倒数第二个字符串
        for (i = 0; i < n-1; i++)
        {
            //k用于记录当前的字符串小标,
    
            k = i;
            //遍历第i个之后的字符串,到最后一个为止
            for ( j = i+1; j < n; j++)
            {    //strcmp用于比较字符串str1和str2是否相同。如果相同则返回0;
                //如果不同,在不同的字符处如果str1的字符大于str2的字符,则返回1,否则返回-1
                if(strcmp(str[k],str[j])>0)
                {    //    将较小的赋值给k
                    k = j;
                }
                //如果当前最小的位置已经不是i了,就将第i个位置和第k个位置的字符串进行交换
                if (k != i) 
                {
                    tmp = str[i];
                    str[i] = str[k];
                    str[k] = tmp;
                }
            }
        }
    }
    void print(char* str[], int n) {
        int i;
        for ( i = 0; i < n; i++)
        {
            printf("%s
    ", str[i]);
        }
    }
    int main() {
        //定义一个指针数组,指向的是数组中的每一个字符串
        //注意在visual stdio2019中会报错,解决方法参考https://www.cnblogs.com/xiximayou/p/12121287.html
        //中的第一种方式,一了百了
        char* str[] = { "hello","goodbye","hi","hella" };
        void sort(char* str[], int n);
        void print(char* str[], int n);
        int n = 4;
        sort(str, n);
        print(str, n);
        system("pause");
        return 0;
    }

    输出:

  • 相关阅读:
    canvas 画一个钟表
    .net防止写文件线程冲突
    .net中params以前没关注过的一个现象
    dom属性和特性
    数组常用方法
    新手配置vux
    改变placeholder的字体颜色大小
    设置cookie,删除cookie,读取cookie
    css 画三角形
    audio元素和video元素在ios和andriod中无法自动播放
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12126647.html
Copyright © 2011-2022 走看看