C基础笔记(函数)

函数

1.  函数还有很多叫法,比如方法、子例程或程序,等等

2.  函数由一个函数头和一个函数主体组成。

  • 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void
  • 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
  • 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
  • 函数主体:函数主体包含一组定义函数执行任务的语句
复制代码
#include  <stdio.h>
void show()   //函数的定义
{
    printf("11");
    return;
}
int main()
{
    show();  //函数的的调用
    show();
    printf("22");
    show();
    printf("22");
    return 0;
}
复制代码

结果:1111221122

函数的传值调用:

向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。

在这种情况下,修改函数内的形式参数不会影响实际参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
/* 函数声明 */
void swap(int x, int y);
/* 函数定义 */
void swap(int x, int y)
{
   int temp;
   temp = x; /* 保存 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 temp 赋值给 y */
   return;
}
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
   printf("交换前,a 的值: %d\n", a );
   printf("交换前,b 的值: %d\n", b );
   /* 调用函数来交换值 */
   swap(a, b);
   printf("交换后,a 的值: %d\n", a );
   printf("交换后,b 的值: %d\n", b );
   return 0;
}
交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 100
交换后,b 的值: 200

函数的引用调用:

通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。

传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。

复制代码
#include <stdio.h> 
/* 函数声明 */
void swap(int *x, int *y);
 /* 函数定义 */
void swap(int *x, int *y)
{
   int temp;
   temp = *x;    /* 保存地址 x 的值 */
   *x = *y;      /* 把 y 赋值给 x */
   *y = temp;    /* 把 temp 赋值给 y */
   return;
}
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
   printf("交换前,a 的值: %d\n", a );
   printf("交换前,b 的值: %d\n", b );
   /* 调用函数来交换值
    * &a 表示指向 a 的指针,即变量 a 的地址
    * &b 表示指向 b 的指针,即变量 b 的地址
   */
   swap(&a, &b);
   printf("交换后,a 的值: %d\n", a );
   printf("交换后,b 的值: %d\n", b );
   return 0;
}
复制代码

结果:

交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 200
交换后,b 的值: 100
与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值

 

posted @   罗悠然  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示