硅基计划 学习总结 柒

C语言函数及关键字学习总结

 


一、函数(下)

(接上个总结函数部分)

1.数组作为函数来传参

#比如我们写个函数将一个数组中的内容全部变成“-1”再写一个函数打印

对于传参部分,如果是二维数组,则要写

set_arr(arr,3,5);//数组名。行,列

 对于函数部分,若果你写的是二维数组,我们要这么来接收

void set_arr(int arr[][],int r,int c

 

##形参和实参个数要匹配,如果你的实参为数组那你形参也要是数组,形参数组的大小不写但是二维数组列要写(二维数组写法),传参时实参和形参是同一个数组且形参并不会自己创建一个数组(这个和变量不一样)

2.嵌套使用

#意思是把多个函数结合在一起,一环套一环,比如你要计算某年某月有多少天?如果是闰年呢?

3.链式访问

#意思是将一个函数返回值作为另一个函数参数,比如

printf("%zd\n",strlen("abcdef"));//可用%zu打印
//因为strlen对于size_t返回值,可以用无符号整数接收

又或者经典三重printf

printf("%d", printf("%d", printf("%d", 43)));//结果是4321

 通过查询我们得知printf返回值是打印在屏幕上的元素个数

最里面一层的printf打印43,外一层就认为有两元素,返回2,最外面一层看到有一个元素,返回一

如果加上空格呢?没错,空格也算一个元素

printf("%d ", printf("%d ", printf("%d ", 43)));//结果就是43 3 2

 

 二、函数的声明和定义

1.单个文件:若函数写在main函数之后,会出现警告,我们直接声明就好了

2.对于多个文件,代码我们拆分到多个文件中,声明放在头文件中,函数定义放在另一个.c文件中,引用是在使用  inlcude "头文件",不推荐不写头文件后用extern

你肯定纳闷为啥要这么做,我们将设个场景,若果你只想然别人使用不想让别人看到代码实现细节,可以把定义所在的文件,点击项目名→属性→常规→配置类型→换成静态库→再生成对应解决方案,包含对于头文件→有个.lib文件,把.lib文件和.h文件发个别人即可

三、static与extern(关键字)

1.对于extern,是用来声明外部符号的,可以是变量或者是函数等

2.作用域:变量的可使用范围就是其作用域,全局变量作用域是整个工程,在工程内跨文件也可以

3.生命周期:变量从创建到销毁时间段,局部变量进入作用域开始,出作用域结束,全局变量是整个程序的生命周期,也是main函数的生命周期

4.static

修饰局部变量→创建好后就不销毁,每次进出作用域保留上次的值

#原理:将局部变量由栈区放置到静态区,在内存中位置发生了变化

修饰全局变量→原本具有外部链接属性变成内部链接属性,仅当前文件可用,其他源文件无法使用

修饰函数→和全局变量类似,函数默认的外部链接属性变成内部连接属性,只能自己文件使用

 


END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值