参考连接:https://www.runoob.com/cprogramming/c-functions.html

局部变量与全局变量在内存中的储存方式

全局变量保存在内存中的全局储存区中,占用静态的存储单元

局部变量保存在栈中,只有当所在程序被调用的时候才动态的为变量分配储存单元

要正确的初始化变量

函数声明

函数声明可以告诉编译器函数名称以及如何调用函数,而函数的实际主体可以单独定义(就是简单的声明一下)

在函数声明中,参数的名称并不重要,只有参数的类型是必需的,因此下面也是有效的声明:

当程序调用函数时,程序的控制权会转移给被调用的函数

函数参数

形参就像函数内部的其他局部变量,当函数执行时被创建,函数执行结束后被销毁

有两种向函数内传递参数的方式:传值调用引用调用

传值调用

就相当于把参数的实际值复制给形参,形参的改变并不会影响实际值

一般情况下使用这个

引用调用

把实际值的地址赋给形参,形参为执行实际值地址的指针

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

/* 函数定义 */
void swap(int *x, int *y)
{
int temp;
temp = *x; /* 保存地址 x 的值 */
*x = *y; /* 把 y 赋值给 x */
*y = temp; /* 把 temp 赋值给 y */ return;
}
//函数调用
#include <stdio.h> /* 函数声明 */
void swap(int *x, int *y); 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;
}

最新文章

  1. 国内版Office 365和Azure AAD绑定的问题及解决方案
  2. [Java coding] leetcode notes
  3. 【CSS3】css3:box-sizing属性
  4. #linux包之tcpdump之tcpdump命令
  5. MYSQL分页limit速度太慢优化方法
  6. [未完成]关于POI的使用
  7. An existing PostgreSql installation has been found... 的解决
  8. 看奢侈品Prada如何使用物联网
  9. HDOJ(HDU) 2178 猜数字(题意有点难理解、、、)
  10. 如何做Gibbs采样(how to do gibbs-sampling)
  11. linux上大量tcp端口处于TIME_WAIT的问题
  12. Python中Generators教程
  13. WannaflyUnion每日一题
  14. struts2-Action处理请求参数
  15. 关于JavaScript(脚本语言)
  16. 微信小程序--代码构成---JS 交互逻辑
  17. jquery筛选数组之grep、each、inArray、map的用法及遍历son对象(转)
  18. node学习笔记1——配置node环境变量及执行node文件
  19. SVC(STM32)
  20. Python常用模块之PIL(手册篇:Image模块)

热门文章

  1. centOS服务器安装mongodb
  2. XML的互相序列化对象
  3. Spring 注解配置Bean
  4. Redis中使用redis-cli及密码登录
  5. Python的包package的导入与被导入(包的类和方法的导入,__init__()怎么写)
  6. dart lang 开发环境
  7. VSCode 如何同步设置
  8. 【洛谷P1963】[NOI2009]变换序列(二分图匹配)
  9. (day48)Bootstrap、Adminlte框架、sweetalert
  10. Linux学习笔记-第15天 还真是看书不如做实验