• C语言基础---函数、数组


    目录

     一、函数

    二、数组​

     一、函数

    交换两个数:

     发现这样并没有交换a和b的值,只是交换了x和y的值,这是因为:

            //当实参传递给形参的时候,形参是实参的一份临时拷贝
            //对形参的修改不能改变实参

           实参与形参是什么? 

            实参:真是传递给函数的参数,在进行函数调用时,必须有确切的值;形参:指的是函数名括号中的变量,因为形参只在函数调用的时候才实例化(分配内存单元)。形参在函数调用完成之后就自动销毁(局部变量),因此形参只在函数中才有效。形参实例化之后相当于实参的一份临时拷贝。

    那如何交换a和b?

    交换方法:

    1. //形参 - 形式参数
    2. //当实参传递给形参的时候,形参是实参的一份临时拷贝
    3. //对形参的修改不能改变实参
    4. void Swap(int* x, int* y)
    5. {
    6. int z = 0;
    7. z = *x;
    8. *x = *y;
    9. *y = z;
    10. }
    11. int main()
    12. {
    13. int a = 0;
    14. int b = 0;
    15. scanf("%d%d", &a, &b);
    16. printf("交换前:a = %d b = %d\n", a, b);
    17. Swap(&a, &b);//实参
    18. printf("交换后:a = %d b = %d\n", a, b);
    19. return 0;
    20. }

     注意:int*接收int,int**接收int*

     但是为什么下面这种不用传地址?见调试图:

     printf函数:

    1. int main()
    2. {
    3. printf("%d\n", 43);//43
    4. printf("%d", printf("%d", printf("%d", 43)));
    5. /*当执行最外层的printf的时候,其打印内容是printf("%d",43)的返回值,
    6. 而在最外层printf函数得到printf("%d",43)的返回值之前,会先执行printf("%d",43)
    7. 也就是会先打印 43
    8. 43共2个字符,所以printf("%d",43)返回整型2*/
    9. //printf函数返回值返回的是打印的字符的个数
    10. return 0;
    11. }

    函数递归:

     

     

    二、数组

    通过赋初值的方式给一维字符数组赋字符串
    1、用给一般数组赋初值的相同方式给一维字符组赋初值
            char str[10]={‘s’,‘t’,‘r’,‘i’,‘i’,‘n’,‘j’,’\0’}
            字符数组str共有10个元素,但str作为字符串,其长度为7,虽然最后一个字符是‘\0’,但它并不是结束标识因为系统会自动的给其分配一个结束标识。
    2、在赋值时直接赋字符串常量
            char str[10]={“string”};
            习惯上省略花括号
            char str[10]=“string!”(这种方式会自动给字符串的末尾添加结束标识,但需要注意的是字符串数组的长度一定要比赋值的长度多一个)
    用一维字符数组存放字符串-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_46170663/article/details/104295429

     

     

     数组名表示首元素的地址,但是有两个例外:

    1.sizeof(数组名),这个数组名表示整个数组

    2.&数组名,这个数组名也表示整个数组,取出的是整个数组的地址

     

  • 相关阅读:
    快速掌握Golang单元测试与断言教程
    Rational rose 2007 下载和安装教程
    【Django | 开发】面试招聘信息网站(用户登录注册&投在线递简历)
    腾讯云和阿里云4核8G云服务器多少钱一年和1个月费用对比
    STM32复习笔记(五):FSMC连接外部SRAM
    linux apache安装及虚拟主机配置
    python批量删除excel文件中的sheet页
    Easyrecovery2022硬盘磁盘U盘免费数据恢复软件
    2023-10-09 LeetCode每日一题(最小和分割)
    PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]
  • 原文地址:https://blog.csdn.net/weixin_57604904/article/details/134523057