C语言 函数的基本概念

1、函数的基本概念
//自定义的函数放在 main() 函数前面,表示函数的定义、也相当于声明了
void printhello()  //自定义的函数(自己写的函数)void  表示函数没有返回值
{
printf("hello,how are you\n");
//这里可以不写:return;
}
int main()  // 这个是主函数,是用于系统调用的
{
   printfhello();   //使用这个函数的时候必须先声明  ,如果没有声明main()函数就找不到这个自定义的函数
   
}
a、一个文件里有 一个或者多个函数组成,这个文件我们一般就称为 源程序文件
b、大项目不能源程序都放一个文件里,所以一个C项目是由一个或者多个源程序文件组成。
          这些函数可以分别放到这些源程序文件里面并被所有的源程序文件 公用
c、C程序是从main() 函数开始执行,最总也是在main()函数中结束整个程序的运行。
d、函数不能嵌套使用,但是可以 互相调用特别注意 :不要手工去调用 main() 函数,这个函数是系统调用的,自己调用可能会出错。
e、 函数分类
(1)、 库函数:比如printf(); ,直接使用,不需要我们自己定义。strcpy,strcmp,strlen
(2)、 自定义函数:比如上面的printfhello(),是我们自己写的函数,所以称为自定义函数,用于解决我们自己的需求。
2、函数的定义和函数返回值
函数的定义和返回值
函数参数:所谓的函数参数就是 调用函数的时候,希望把一些数据传递给该函数,这个时候,该函数就需要用一些变量来接收这些数据,这些接收数据的变量,就叫做函数参数(形式参数)。
函数定义的一般形式:             //记住这个概念,函数里面的参数叫做 形式参数,简称: 形参
返回类型  函数名(形式参数)    
{
语句(函数体)
return 返回值;
}  
        a)、无返回类型,无形参    void printhello() {.......}     ,没有返回类型的函数,返回类型这里必须写成 void
b)、有参数,有返回类型
int addtwoshu(int a, int b)  
{
   int sum=a+b;
   return sum;  // 用 return 返回值给 调用者,一般来说调用者会 用赋值语句 来接收 该值
                             [简单来说,return 的作用就是:把函数执行最后的结果返回给这个 调用者]
}
int main()
{
  int result =addtwoshu(3,4);  // 在主函数里面调用这个函数, 3,4表示实际参数,简称: 实参
   printf("result= %d \n",result);  //输出的结果为:7
}
 // a,b 就叫 形式参数,有多个形式参数的时候就用 逗号隔开,形式参数的目的表示有数据要传递到本                                                       函数来,用这些参数接收这些传递来的数据。
说明:
//1、函数定义的第一行 不能有分号
//2、 形式参数在函数调用之前并不分配内存,调用的时候分配内存,函数调用结束后,形式参数的内存就被释放了,所以 形式参数          只能函数内部使用
//3、 实际参数可以是常量、变量、表达式;
result = addtwoshu(1+2,2+2);
int i = 3,j = 4;
result = addtwoshu(i,j);
//4、函数调用的时候, 实际参数的值 自动赋值给了 形式参数,如果实际参数和形式参数为数组名(数组名代表的是数组首地址),           则传递进去的是数组首地址而不是变量值。
         形式参数的数量和类型 必须 与 实际参数的数量和类型 保持一致。
//5、C语言规定,实际参数变量的数据传递是“值传递”,也就是单向传递, 只能由 实际参数 传递给 形式参数,不能由形式参数 传递给实际参数。
//6、如果你 实际返回的类型函数定义的返回类型 不同时,则系统会 自动转成 函数返回类型
int testf()
{
  return 3.45F;  //会自动转换成 int 型 -3
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中有两个相关概念函数指针和指针函数。 1. 函数指针(Function Pointers):函数指针是指向函数的指针变量。它可以用来存储和调用特定类型的函数。通过函数指针,可以在运行时动态地选择要执行的函数函数指针的声明形式为:`返回类型 (*指针变量名)(参数列表)`。例如,以下是一个函数指针的示例: ```c #include <stdio.h> void display(int num) { printf("Number: %d\n", num); } int main() { void (*func_ptr)(int); // 声明一个函数指针变量 func_ptr = display; // 将函数的地址赋值给函数指针变量 func_ptr(10); // 通过函数指针调用函数 return 0; } ``` 2. 指针函数(Pointer to a Function):指针函数是一个返回指向函数的指针的函数。它返回的是函数的地址,而不是函数的返回值。指针函数的声明形式为:`返回类型 (*函数名)(参数列表)`。以下是一个指针函数的示例: ```c #include <stdio.h> int add(int num1, int num2) { return num1 + num2; } int subtract(int num1, int num2) { return num1 - num2; } int (*getOperation(char op))(int, int) { if (op == '+') { return add; // 返回add函数的地址 } else { return subtract; // 返回subtract函数的地址 } } int main() { int num1 = 10, num2 = 5; char op = '+'; int (*operation)(int, int); // 声明一个指针函数变量 operation = getOperation(op); // 将指针函数的返回值(函数地址)赋值给指针函数变量 int result = operation(num1, num2); // 通过指针函数调用对应的函数 printf("Result: %d\n", result); return 0; } ``` 以上就是函数指针和指针函数基本概念和用法。通过它们,可以实现更灵活的函数调用和动态选择执行的函数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值