zoukankan      html  css  js  c++  java
  • 指针应用

    1、用数组名常量指针输出二维数组,并将数组中的最大元素及所在行列号输出
    #include "stdio.h"
    #include 
    "conio.h"
    void main()
    {
        
    int i,j,m,n,max;
        
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        m
    =0;n=0;
        max
    =**a;                            /*第一元素赋给max,**a等价于*(*(a+0)+0)*/
        
    for(i=0;i<3;i++)
        
    {
            printf(
    "\n");
            
    for(j=0;j<4;j++)
            
    {
                printf(
    "%5d",*(*(a+i)+j));
                
    if(max<*(*(a+i)+j))
                
    {
                    max
    =*(*(a+i)+j);
                    m
    =i;n=j;
                }

            }

        }

        printf(
    "\nmax is :a[%2d][%2d]=%-5d",m,n,max);
        getch();
    }
    2、用指向数组元素的指针输出二维数组,并将数组织中的最大元素及所在行列号输出
    #include "stdio.h"
    #include 
    "conio.h"
    void main()
    {
        
    int i,j,m,n,max;
        
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        m
    =0;n=0;
        
    int *p;
        p
    =a[0];                          /*指针p指向数组a的第0行*/
        max
    =*p;                       /*先把第一个元素最为最大值*/

        
    for(i=0;i<3;i++)
        
    {
            printf(
    "\n");
            
    for(j=0;j<4;j++)
            
    {
                printf(
    "%5d",*p);
                
    if(max<*p)
                
    {
                    max
    =*p;
                    m
    =i;n=j;
                }

                p
    ++;
            }

        }

        printf(
    "\nmax is :a[%2d][%2d]=%-5d",m,n,max);
        getch();
    }

    3、用指向一维数组的行指针输出二维数组,并将数组中的最大元素及所在行列号输出
    #include "stdio.h"
    #include 
    "conio.h"
    void main()
    {
        
    int i,j,m,n,max;
        
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        m
    =0;n=0;
        
    int (*p)[4];        /*定义p为指向一个有4个元素的一维数组的指针变量*/
        p
    =a;                /*p指向第0行*/
        max
    =**p;            /*将第一个元素送max,**p相当于*(*(p+0)+0)*/

        
    for(i=0;i<3;i++)
        
    {
            printf(
    "\n");
            
    for(j=0;j<4;j++)
            
    {
                printf(
    "%5d",*(*p+j));
                
    if(max<*(*p+j))
                
    {
                    max
    =*(*p+j);
                    m
    =i;n=j;
                }

            }

            p
    ++;           /*指向下一行*/
        }

        printf(
    "\nmax is :a[%2d][%2d]=%-5d",m,n,max);
        getch();
    }
  • 相关阅读:
    [LeetCode-JAVA] Count Complete Tree Nodes
    [LeetCode-JAVA] Shortest Palindrome
    [LeetCode-JAVA] Best Time to Buy and Sell Stock IV
    [LeetCode-JAVA] Word Ladder II
    [LeetCode-JAVA] Jump Game II
    Keil开发的ARM程序main函数之前的汇编分析
    STM32平台SD卡的FatFS文件系统开发
    STM32 Cortex-M3 NMI异常
    应对STM32 Cortex-M3 Hard Fault异常
    LwIP协议栈开发嵌入式网络的三种方法分析
  • 原文地址:https://www.cnblogs.com/qixin622/p/624728.html
Copyright © 2011-2022 走看看