码迷,mamicode.com
首页 > 编程语言 > 详细

【C】数组做形参

时间:2017-03-12 01:09:51      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:div   前言   地址   turn   内存   void   二维数组   nbsp   pre   

前言

有时候想把一维、二维数组作为实参传入被调函数,有什么特殊么?

 

普通参数做实参

普通参数传入,其实是传入了一个copy,函数内对形参的操作并不能影响实参。

一维数组做实参

一维数组的传入,其实传入的是数组的首地址,函数内操作的也是数组真实的内存地址里的数据。

所以,以下三者是等价的

void func(int *a)
void func(int a[])
void func(int a[5])

用法:一般的,数组作为参数传入,第一个形参是首地址,第二个形参是数组的size。

二维数组做实参

用法:二维数组的传入,可以写三个参数,第一个形参表示数组首地址,第二形参表示一维size,第三个形参表示二维size。

例如:

int  plus(int a,int b) {
    int c=0;
    c=(++a)+(++b);
    return c;        
}
int plusArr(int d[]){
    ++d[0];
    ++d[1];
}
int caculate() {
    int a = 1;
    int b = 5;
    int c = 0;
    int d[2] = {8,9};
    c=plus(1,2);
    print(a);
    pinrt(b); 
    print(d[0],d[1]);
}
结果:1  5   9  10

 

【C】数组做形参

标签:div   前言   地址   turn   内存   void   二维数组   nbsp   pre   

原文地址:http://www.cnblogs.com/isha2088/p/6536739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!