• 三:C语言基础复习--指针(指针常量,常量指针,指针数组,数组指针)


    一:指针常量

    概念:指针指向的地址不可改变,但是可以通过指针改变指向地址的值。

    二:常量指针

    概念:指针指向的地址是一个常量,不可通过指针改变,但是指针可以改变指向。

    三:指针数组

    概念:由指针构成的一个数组。

    1.指针数组案例(一)

    #include<stdio.h>
    #include<string.h>
    
    //要求:输入10个字符串,请打印最长的字符串
    
    int main()
    {
        char *section[10];
        int longest_index=0;
        for(int i=0;i<10;i++)
        {
            scanf("%s",section[i]);
            if(longest_index<strlen(section[i])
                longest_index=i;
        }
        printf("%s",section[i]);
        return 0;
    }

    四:数组指针

    概念:指向一个数组大小固定的指针。

    1.数组指针案例(一)

    #include<stdio.h>
    #include<string.h>
    
    //要求:使用数组指针操作二维数组
    
    int main()
    {
        int array[10][10];
        int i,j;
        for(i=1;i<=10;i++)
        {
            for(j=1;j<=10;j++)
            {
                array[i-1][j-1]=i*j;
            }
        }
        
        
        //p指针指向了一个行大小固定的数组,所以可以用来指向一个二维数组
        int (*p)[10]=array;
        for(i=0;i<10;i++)
        {
            //1.可以在这里成成p=p[i];或标记2
            for(j=0;j<10;j++)
            {
                //将p的转换成整形,即地址,强转为int*,则就可以操作元素了。
                int *t = (int*)((int)*p+sizeof(int)*j);
                printf("%6d,",*t);
                //这里也可以使用p[i][j]
            }
            
            //2.这里的p++实际上是p+sizeof(int[10])
            p++;
            printf("
    ");
        }
    
        return 0;
    }
  • 相关阅读:
    Codeforces #364 DIV2
    uva10635 LIS
    hdu3714 三分找最值
    【转】三分查找
    NBUT 1457 莫队算法 离散化
    HYSBZ 2038 莫队算法
    莫队算法
    poj3417 LCA + 树形dp
    hdu3087 LCA + 暴力
    hdu2874 LCA在线算法
  • 原文地址:https://www.cnblogs.com/running-world/p/11572949.html
Copyright © 2020-2023  润新知