C语言-函数

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*函数*/
/*这是自己定义的库函数*/

int mystrlen(char str[])/*str叫形参*/
{
    int len = 0;
    while (str[len++]);
    len--;
    return len;

}
/*无参无返回值的函数*/
void test(void)
{
    printf("test\n");
}
/*
    函数的形参与实参:
    在调用函数的时候,函数大多数都有参数,主调函数和被电泳函数之间需要传递数据。
    在定义函数是函数名后面括弧中的变量称为“形式参数”,简称形参。在调用函数是,
    函数名后面括号中的变量或表达式称为“实际参数”,简称实参。

    1.形参在未出现函数调用时,他们并不占用内存单元。只有在发生函数调用的时候形参才
      被分配内存,函数调用完成后,形参所占的内存被释放。
    2.实参可以是变量,常量或者表达式。
    3.在定义函数时,一定要指定形参的数据类型。
    4.在形参与实参的数据类型一定要可兼容。
    5.在C语言中,实参与形参的数据传递是“值传递”,即单向传递,只能由实参传递给形参,
      而不能由形参传递给实参。
    */

int maxnum (int a, int b)/*有两个整型的形参,形参一定是变量,不能是常量*/
{
    int c = (a > b) ? a : b;
    return c;//返回值一定要和函数的定义数据类型统一
}


/*函数可以在main前面先声明,在main之后写函数体也是可以的*/
//int mystrlen(char str[]);
//int maxnum (int a, int b);

/*
    在函数使用之前就定义这个函数;
    先声明这个函数,然后使用,使用代码的后面再定义这个函数;
*/

/*也可以是拥有不同到形参*/
void mytest(char s[], int i)
{
    printf("%s,%d\n", s, i);
}
void testcs(int n)
{
    n++;
}
/*如果C语言中有一个函数没有明确的的标明函数的返回类型,那么函数的返回类型就是int*/
/*值传递:一般是单向传递*/

mytest1()
{
    return 66;
}

void test_str(char s[])
{
    s[0] = 'a';
    s[1] = 'b';
}
void mystrcat(char s1[], char s2[])
{
    int len1 = 0;
    while (s1[len1++]);
    len1--;

    int len2 = 0;
    while (s2[len2++]);
    len2--;

    int i;
    for (i = 0; i < len2; i++)
    {
        s1[len1 + i] = s2[i];
    }
}
int main()
{
    char str1[100] = "hello";
    test_str(str1);
    printf("%s\n",str1);//abllo:如果函数的参数是个数组,那么是可以通过形参修改实参的值的
    system("pause");
    return 0;


    int value = 9;
    testcs(value);
    printf("value = %d\n",value);
    system("pause");
    return 0;

    mytest1();
    mytest("AAAAA", 10);//形参实参的类型一定要严格匹配
    test();
    int a = maxnum(135,56);
    printf("a=%d\n", a);
    system("pause");
    return 0;
    
    char s[] = "hello";
    int len = mystrlen(s);//s是实参
    printf("%d\n",len);

    system("pause");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值