• C语言 自定义函数|函数


    strlen()是用于计算字符串长度的函数

    从第一个字符算起,至“\0”之前的长度(不包括\0)

    sizeof()是求所占空间的字节大小

    goto语句不可以跨函数使用

    strcmp是比较两个字符串的大小的函数

    strcmp函数需要引用头文件#include

    两个字符串比较不可以直接使用==,应该用strcmp函数,例如

    strcmp(input,“我是笨蛋”)==0

    自定义函数的组成

     自定义比较大小函数(引入get_max函数)

    int get_max(int x, int y)
    {
        return(x > y ? x:y);
    }

    int main()
    {
        int a = 0;
        int b = 0;

        scanf("%d %d", &a, &b);
        //求较大值
        //函数的调用
        int m = get_max(a, b);
        printf("%d\n", m);
        return 0;
    }

    memset函数的用法

    这里要引入头文件#include

    memset(目的字符串的起点,‘要替换成的东西',替换的个数),例如

    int main()
    {
        char arr[] ="hello world"; 
        memset(arr, '*', 5);   //arr可以加减改变替换的起点,默认是从第一个开始
        printf("%s\n", arr);
        return 0;
    }

    重新定义一个交换函数

    void swap(int x, int y)//在这里对a和b重新取了地址,所以这里的x和y无法返回a和b
    {
        int z = 0;
        z = x;
        x = y;
        y = z;
    }
    int main()
    {
        int a = 0;
        int b = 0;
        scanf("%d %d", &a, &b);
        printf("交换前:a=%d b=%d\n", a, b);
        //a和b叫实参
        swap(a, b);
        printf("交换后:a=%d b=%d\n", a, b);
        return 0;
    }

    经过运行会发现输入的数字并不会交换

    这时因为在定义swap函数时对a和b重新取了地址,所以重新取了地址的x和y无法返回a和b

    重新取地址的x,y只是形式参数

    当实参传递给形参的时候,形参是实参的一份临时拷贝
    对形参的修改不会影响实参

    修改后的:

    void swap(int* px, int* py)
    {
        int z = *px; //z=a
        *px = *py;   //a=b
        *py = z;     //b=z
    }

    int main()
    {
        int a = 0;
        int b = 0;
        scanf("%d %d", &a, &b);
        printf("交换前:a=%d b=%d\n", a, b);
        swap(&a, &b);
        printf("交换后:a=%d b=%d\n", a, b);
        return 0;
    }

    修改后的,a和b连带着地址都一起传给了x和y

    所以a和b就可以交换

  • 相关阅读:
    Packet Tracer - 研究 DUAL FSM
    02-课程发布
    第九章 设置结构化日志记录(一)
    集美大学计算机改考408!福建省全面改考,仅剩一个自命题院校
    python之测试类
    LVS+Keepalived NGINX+Keepalived 高可用群集实战部署
    深入理解强化学习——多臂赌博机:乐观初始值
    为什么这么多品牌迫切想要改变Logo?
    Android后退堆栈
    Hadoop大数据技术 伪分布式集群搭建快速入门教程Centos7
  • 原文地址:https://blog.csdn.net/qq_58094522/article/details/136424140