zoukankan      html  css  js  c++  java
  • 三: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;
    }
  • 相关阅读:
    Tair分布式key/value存储
    Ehcache详细解读
    专访阿里中间件高级专家沈询
    boost之词法解析器spirit
    快速部署Python应用:Nginx+uWSGI配置详解
    CMake如何执行shell命令
    show engine innodb status 详解
    HTTP Request header
    json python api
    mysql 索引对于select速度提升作用实验
  • 原文地址:https://www.cnblogs.com/running-world/p/11572949.html
Copyright © 2011-2022 走看看