zoukankan      html  css  js  c++  java
  • C语言三种方法调用数组

     1 #include <stdio.h>
     2 /********************************* 
     3 * 方法1: 第一维的长度可以不指定 * 
     4 * 但必须指定第二维的长度 * 
     5 *********************************/ 
     6 void print_a(double a[][5], int n, int m) 
     7 { 
     8 int i, j; 
     9 
    10 for(i = 0; i < n; i++) 
    11     { 
    12         for(j = 0; j < m; j++) 
    13         {
    14         printf("%lf    ", a[i][j]);
    15         } 
    16 
    17         printf("
    "); 
    18     } 
    19 //printf("%d ", a[1][0]+a[2][0]);//输出3+6,
    20 //a[4][4]=a[1][0]+a[2][0]; //即验证是不是真能直接操作数组,答案是可以
    21 } 
    22 /**************************************************************
    23 *方法2: int (*a)[5]是指向一个一维数组(有5个int型元素)的指针,*
    24 *因为原数组每行有5个元素,故int (*a)[5]中必须为5 * 
    25 **************************************************************/ 
    26 void print_b(double (*a)[5], int n, int m) 
    27 { 
    28 int i, j; 
    29 
    30 for(i = 0; i < n; i++) 
    31 { 
    32 for(j = 0; j < m; j++) 
    33 printf("%lf    ", a[i][j]);
    34 
    35 printf("
    "); 
    36 } 
    37 }
    38 /*********************************** 
    39 *方法3: 利用数组是顺序存储的特性, * 
    40 * 通过降维来访问原数组! * 
    41 ***********************************/ 
    42 void print_c(double *a, int n, int m) 
    43 { 
    44 int i, j; 
    45 
    46 for(i = 0; i < n; i++) 
    47 { 
    48 for(j = 0; j < m; j++) 
    49 printf("%lf    ", *(a + i*m + j)); 
    50 
    51 printf("
    "); 
    52 } 
    53 
    54 }
    55 int main(void) 
    56 { 
    57 double a[5][5] = {{1.0, 2.0}, {3.0, 4.0, 5.0}, {6.0}, {7.0}, {0.0, 8.0}}; 
    58 
    59 printf("
    方法1:
    "); 
    60 printf("输出a:%lf
    ",a);
    61 print_a(a, 5, 5);
    62 printf("%lf ", a[1][0]+a[2][0]);//输出3+6,
    63 printf("%lf ", a[1][0]+a[2][0]);//输出3+6
    64 
    65 
    66 
    67 printf("
    方法2:
    "); 
    68 printf("输出a:%lf
    ",a);
    69 print_b(a, 5, 5); 
    70 
    71 printf("
    方法3:
    "); 
    72 printf("输出&a[0][0]:%lf
    ",&a[0][0]);
    73 printf("输出&a:%lf
    ",&a);
    74 printf("输出a:%lf
    ",a);
    75 print_c(&a[0][0], 5, 5); //&a是会警告的,&a[0][0]才最好
    76 
    77 getchar(); 
    78 return 0; 
    79 }

  • 相关阅读:
    从零开始学Oracle—约束(三)
    ewebeditor安全解决方案 j神
    12款很棒的浏览器兼容性测试工具推荐 j神
    文件无法删除,找不到指定文件-解决办法 j神
    如何应对Global.asa木马 j神
    2012年最佳免费网站和移动应用 PSD 界面素材揭晓 j神
    PHP上传RAR压缩包并解压目录 j神
    数据库查询语句:left join ... on ... j神
    js 与或运算符 || && 妙用 j神
    实时监听输入框值变化的完美方案:oninput & onpropertychange j神
  • 原文地址:https://www.cnblogs.com/zhubinglong/p/7619827.html
Copyright © 2011-2022 走看看