栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

最详细的 c语言传参详解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最详细的 c语言传参详解

一、数组传参

1》一维数组传参

        1、

        void fun ( int  a [ ],int n) //以定义数组的方式确定形参,n--数组元素个数

        {};

        int main(void)

        {

                int a[5];

                fun(a,5); // 实参为数组名 和元素个数

        }

        2、

        void fun( int *a ,int n) //采用指针的形式定义形参,n--元素个数

        {};

        int main()

        {

                int a[5];

                fun (a,5);  // 数组名即为地址,所以形参可以用相应的一级指针接收,元素个数

        }

2》二维数组传参

        1、

        void fun( int a[ i ] [ j ],int i ,int j ) //以定义数组的方式 设置形参 ,i 可以省略 但是 j 不可省略

        {};

        int main (void)

        {

                int a [ i ] [ j ];

                fun( a, i ,j);

        }

        2、

        void fun ( int (*p)[ j ])//二维数组同一维数组不同 得用 数组指针接收

        {};

        int main()

        {

                int a [ i ] [ j ] ;

                fun( a ); // 传递数组名 实际上是第一行 一维数组的地址

        }

3》字符串数组传参

        void (char *ch) //指针形式

        {};

        void (char []) //数组形式

        {};

        int main ()

        {

                char a[]="hello world!!";

                fun( a ); //只传数组名

        }

二、指针传参

       1》一级指针传参

        1、

        void (int *p) //一级指针接收即可

        {};

        int main()

        {

                int * p;

                int a;

                p=&a;

                fun( p ); //这属于值传递,把p存放的地址传递给函数 ,不可以改变p 的值;

        }

2、

        void (int **p)//二级指针接收

        {};

        int main()

        {

                int  *p;

                int  a;

                p = &a;

                fun ( &p ) ; //这属于地址传递,而 p 本身就是一个指针所以需要二级指针接收

        }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号