二维数组作为参数传递的问题
2015-08-03 20:08
218 查看
1、当我们使用二维数组作为参数传递的时候,所传递的二维数组的第二项必须为一个常数,否则编译不能通过,如int a[][3];
例如:
2、一维数组指针作为形参传递,如int (*a)[3],其实二维数组就相当于一位数组的指针,所以这样也是可以的。
例如:
#include<stdio.h> #define N 3 int turn(int a[] ) //注意此处 { int i,j,temp; temp=0; for(i=0; i<N; i++) { for(j=0; j<N; j++) { if(i<j) { temp =a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } } } } int main() { int a[3][3]= {{12,2,8},{22,16,4}, {10,6,14}}; int i,j; turn(a); for(i=0; i<3; i++) { for(j=0; j<3; j++) { printf("%4d",a[i][j]); } printf("\n"); } return 0; }
2、一维数组指针作为形参传递,如int (*a)[3],其实二维数组就相当于一位数组的指针,所以这样也是可以的。
#include<stdio.h> #define N 3 int turn(int (*a) ) //注意此处 { int i,j,temp; temp=0; for(i=0; i<N; i++) { for(j=0; j<N; j++) { if(i<j) { temp =a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } } } } int main() { int a[3][3]= {{12,2,8},{22,16,4}, {10,6,14}}; int i,j; turn(a); for(i=0; i<3; i++) { for(j=0; j<3; j++) { printf("%4d",a[i][j]); } printf("\n"); } return 0; }
相关文章推荐
- HDOJ Square Coins 1398【母函数】
- iOS应用内置付费In-App Purchases入门
- iOS UI04_Touch
- 深入理解DIP、IoC、DI以及IoC容器
- 运用JS设置cookie、读取cookie、删除cookie
- mongodb分片原理
- Unable to load VirtualBox engine. Genymotion.安装问题
- (一〇四)使用Xcode6创建framework动态静态库
- 【八校联考2013】百团大战
- (一〇四)使用Xcode6创建framework动态静态库
- poj 3160 Father Christmas flymouse【强连通 DAG spfa 】
- leetcode 69: Sqrt(x)
- 字符编码
- 服务器中很多的CLOSE_WAIT
- jni 字符串转化为 char* 的方法
- javascript 没有块级作用域 JavaScript声明全局变量三种方式 及
- hdu 5329 Question for the Leader
- week6-week11
- 2015暑假训练赛团体赛(DLX+Trie模糊匹配+费用流)
- iOS项目中重定义NSLog方法