C 语言中的函数介绍

函数:
    函数是一串语句,这些语句组合起来,并被指定了一个名字。
    有返回值,形参
   
函数的声明和定义
    调用函数之前必须先声明或定义
    隐式声明: int 函数名(根据实参推断)
            float/double    :double
            char/short/int  :int
    包含头文件主要目的是声明函数
       
函数的定义:
        函数不能返回数组,除此之外没有其他限制。
        指定返回类型是void代表 函数没有返回值。
        如果函数没有返回值,在c89中默认是int,c99中不合法。
        函数体内可以出现变量声明和语句,但在c89中,声明必须在使用之前。
   
    在调用函数之前,函数必须是先声明,或者先定义,否则,c就会处理成隐式声明,
        默认的返回值为int。最好避免使用隐式声明。
    在c99中,没有隐式声明。
    函数声明又叫函数原型。函数声明中的参数名可以不写。
   
    f(x) = 2x + 1;

    程序中:给一段代码,起了个名字,叫函数。
    返回值类型(结果) 函数名(参数){
        函数体(一段代码)
    }
   
    main函数的返回值必须是int,默认为int。
    main函数可以递归调用,只是一般不用,成了死循环。
   
    eg: int fa(int x){//形式参数,形参
            return x+1;
        }
       
    值传递:变量传递。在子函数中重新分配空间

函数的返回值:
    根据需求,可以丢弃,保存,参与运算,输出
    (如果函数没有返回值   为void    可以直接return   后面不根数字)
    默认是int的返回值
   
函数的参数
    空参()   可以传任意参数
    void形参 (void)    不允许传任何的参数
    有参数    传对应类型的参数,类型会自动转换
   
程序结束:
    函数执行完
    遇到return:
                void 函数    return;
                非void       return 表达式;
          表达式可以是另一个函数的调用

递归函数:
    递归函数一定有一个出口(退出条件)。
    每次递归调用,会让解决的问题向已知条件靠近。
   
    1、效率比较低
    2、内存消耗大
    3、适合于解决特别复杂的问题(这个复杂问题可以逐步件化成简单问题)
   
字符串函数:
 strcpy(char *,const char *)
     strncpy(char *,const char *,size_t n)//达到n个或者遇到'\0'结束(有'\0'也会拷贝)
         eg:strncpy(str,"abcdef", 6);
    
     strcat(char *,const char *)
     strlen(const char *)
     strcmp()
         > < ==  比较的是地址
        
  string.h
     strcpy://'\0'也会拷贝
     strncpy(char *,const char *,int n)//拷贝n个字符,不算'\0',需要自己添加'\0'
 
 
     strcat:连接
    
     strcmp
    
     strlen:计算字符串的长度,不计算'\0'
    
       b = a;//OK
     a = b;//WARNING
 
    strcpy(char*, const char*)
    strncpy(char*, const char*, size_t n)
  
    strncpy(str, "abcdef", 10);
    char str[10];
    strncpy(str, "123456789", 10);
 
 
    strcat
    strlen
    strcmp
  > < ==  地址
 
  str1 == str2  1
   strcmp(str1, str2)  0
 
   //栈
   char ss[2][4] = {"abc", "def"};
 
  strcpy(ss[0],"abc");//OK
   ss[0] = "aaa";//ERROR
 
   //数组本身在栈,字符串本身在代码区
   char* ss[3] = {"aaa", "bbb", "ccc"};
 
  strcpy(ss[0], "abc");//ERROR
   ss[0] = "ABC";//OK

               

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值