c语言 四种方法调用数组
#include <stdio.h>
/*********************************
* 方法1: 第一维的长度可以不指定 *
* 但必须指定第二维的长度 *
*********************************/
void print_a(double a[][], int n, int m)
{
int i, j; for (i = ; i < n; i++)
{
for (j = ; j < m; j++)
{
printf("%lf ", a[i][j]);
} printf("\n");
}
//printf("%d ", a[1][0]+a[2][0]);//输出3+6,
//a[4][4]=a[1][0]+a[2][0]; //即验证是不是真能直接操作数组,答案是可以
}
/**************************************************************
*方法2: int (*a)[5]是指向一个一维数组(有5个int型元素)的指针,
*因为原数组每行有5个元素,故int (*a)[5]中必须为5
*而*a[N]是一个指针数组,也就是一个数组,里面有N个指针
*而(*a)[N]是一个指向数组的指针,也就是一个指针,指向一个含有N个元素的数组
**************************************************************/
void print_b(double(*a)[], int n, int m)
{
int i, j; for (i = ; i < n; i++)
{
for (j = ; j < m; j++)
printf("%lf ", a[i][j]); printf("\n");
}
}
/***********************************
*方法3: 利用数组是顺序存储的特性,
* 通过降维来访问原数组!
***********************************/
void print_c(double *a, int n, int m)
{
int i, j; for (i = ; i < n; i++)
{
for (j = ; j < m; j++)
printf("%lf ", *(a + i*m + j)); //指针的偏移 printf("\n");
}
} /***********************************
*方法4: 利用数组指针(指向数组的指针)来访问数组,这个数
组指针double (*a)[5][5]存放的是其所指向的数组的首地址,注意不是数组首元素的首地址
* 通过降维来访问原数组!
***********************************/
void print_d(double(*a)[][], int n, int m)
{
int i, j; for (i = ; i < n; i++)
{
for (j = ; j < m; j++)
printf("%lf ", (*a)[i][j]); printf("\n");
}
} int main(void)
{
double a[][] = { { 1.0, 2.0 }, { 3.0, 4.0, 5.0 }, { 6.0 }, { 7.0 }, { 0.0, 8.0 } }; printf("\n方法1:\n");
printf("输出a:%d\n", a);
print_a(a, , );// a double (*)[1]
printf("%lf ", a[][] + a[][]);//输出3+6, printf("\n方法2:\n");
printf("输出a:%s\n", a);
print_b(a, , ); printf("\n方法3:\n");
printf("输出&a[0][0]:%d\n", &a[][]);
printf("输出&a:%d\n", &a);
printf("输出a:%d\n", a);
print_c(&a[][], , ); //&a是会警告的,&a[0][0]才最好。。&a 是整个数组的首地址,a是数组首元素的首地址 printf("\n方法4:\n");
print_d(&a, , );//&a 是整个数组的首地址 getchar();
return ;
}

c语言 四种方法调用数组的更多相关文章
- C语言三种方法调用数组
#include <stdio.h> /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维的长度 * *** ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- C语言中函数返回字符串的四种方法
在讨论着四种方法之前,首先要对函数有一个简单的认识,无论是在形实结合时,还是在return语句返回时,都有一个拷贝的过程.你传进来的参数是个值,自然函数在工作之前要把这个值拷贝一份供自己使用,你传进来 ...
- JS 中检测数组的四种方法
今天和大家分享一下 JS 中检测是不是数组的四种方法,虽然篇幅不长,不过方法应该算是比较全面了. 1. instanceof 方法 instanceof 用于检测一个对象是不是某个类的实例,数组也是一 ...
- C# byte[]数组和string的互相转化 (四种方法)
C# byte[]数组和string的互相转化 (四种方法) 第一种 [csharp] view plain copy string str = System.Text.Encoding.UTF8.G ...
- JavaScript数组去重的四种方法
今天,洗澡的想一个有趣的问题,使用js给数组去重,我想了四种方法,虽然今天的任务没有完成,5555: 不多说,po代码: //方法一:简单循环去重 Array.prototype.unique1 ...
- PHP从数组中删除元素的四种方法实例
PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...
- 判断数组的方法/判断JS数据类型的四种方法
参考文: 以下 3 个判断数组的方法,请分别介绍它们之间的区别和优劣Object.prototype.toString.call() . instanceof 以及 Array.isArray() h ...
- iOS-UITextField中给placeholder动态设置颜色的四种方法
思路分析: 0.自定义UITextField 1.设置占位文字的颜色找-->placeholderColor,结果发现UITextField没有提供这个属性 2.在storyboard/xib中 ...
随机推荐
- 如何利用php array_multisort函数 对数据库排序
数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序.下面将一下array_multisort函数array_multis ...
- python操作TexturePacker批量打包资源plist png
import os,sys imagedir = 'D:\\PackerImg\\imgDir' outplistdir = 'D:\\PackerImg\\outDir' comend = 'Tex ...
- wifi 驱动移植范例
.改Makefile: 里面没有dm6441平台的,我看到有dm6446的,所以就在这里改了 ifeq ($(PLATFORM),DM6446) LINUX_SRC = /root/work/lin ...
- 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能
编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...
- [问题2014S15] 复旦高等代数II(13级)每周一题(第十五教学周)
[问题2014S15] 设 \(O\) 为 \(n\) 阶正交阵,\(A=\mathrm{diag}\{a_1,a_2,\cdots,a_n\}\) 为实对角阵, 证明: 方阵 \(OA\) 的特征 ...
- EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字
EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字 Function 求数字和字母(对象 As String) '在文本与数字混杂中提取数字和字母 Dim myReg ...
- react native 学习资料汇总
http://www.ejiakt.com/album/show/252 http://www.cocoachina.com/ios/20150408/11513.html http://www.os ...
- How to generate a random number in R
Generate a random number between 5.0 and 7.5x1 <- runif(1, 5.0, 7.5) # 参数1表示产生一个随机数x2 <- runif ...
- 9----Lua中的面向对象
什么是面向对象? 使用对象.类.继承.封装.消息等基本概念来进行程序设计 面向对象最重要的两个概念就是:对象和类 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位 一个对象由一组属性 ...
- IE浏览器bug罪魁祸首--hasLayout
IE浏览器一直都是前端程序员最头疼的,IE的表现与其他浏览器不同的原因之一就是,显示引擎使用一个称为布局(layout)的内部概念. 认识hasLayout--haslayout是Windows In ...