day9:函数

文章介绍了C语言中数组指针的概念,指针数组用于传递命令行参数。argc记录传参数量,char*argv[]是一个指针数组。同时讲解了atoi函数、二级指针、函数分类以及全局和局部变量的区别。文章还讨论了不同存储类型的作用,如auto、static、extern和const,并阐述了值传递和地址传递的原理。最后,给出了两个自定义函数示例:my_ad()计算1到100的和,my_add()计算1到n的和。
摘要由CSDN通过智能技术生成

数组指针本质是指针,指针数组本质是数组,指针数组存放的是指针,用于主函数的外部传参, argc记录的是传参个数,char *argv[]是一个指针数组,主函数从命令行接收的外部传参,./a.out后面跟的数据

atoi是把字符串数字转化成数字,二级指针是指向指针的指针,因此记录的是指针的地址。

函数根据有无返回值,有无参数可分类,也可以根据是否是系统库提供分为库函数和自定义函数,根据调用状态分为主调函数和被调函数

全局变量和局部变量

全局变量:没有定义在任何函数内的变量(没有被包在任何{}里面的变量)

全部变量:定义在函数中的变量

全局变量和局部变量,生命周期和作用域是不同的

生命周期:分配的空间何时被回收,变量的开始到消亡

作用域:可以访问的范围

六种存储类型

auto:局部变量默认是auto,全局变量不能使用auto修饰

static:修饰局部变量时,延长局部变量的生命周期 修饰全局变量时,限制全局变量只能在当前文件中被访问 static修饰的变量只会被初始化一次

extern: 引入外部文件种的变量

register:将变量储存在寄存器中,不能被读取地址

const:一般不对const修饰的变量取地址

volatile

值传递和地址传递

值传递:单纯把实参的值传递给形参的过程,函数内部无法修改实参的值

地址传递:是用实参地址初始化形参,可以改变实参的值

一维整形函数作为函数传参

通过传递数组首地址和长度,来计算长度等

自己写1到100相加的函数和输入n,从1加到n的函数

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int my_ad();
int my_add(int a);
int main(int argc, const char *argv[])
{
	//printf("%d\n",my_ad());
	int m;
	scanf("%d",&m);
	printf("%d\n",my_add(m));
	return 0;
return 0;
}
int my_ad()
{
	int i,sum=0;
	for(i=1;i<=100;i++)
	{
		sum+=i;
	}
	return sum;
}
int my_add(int a)
{
	int sum=0,i;
	for(i=1;i<=a;i++)
	{
		sum+=i;
	}
	return sum;
}

作业:

1-2、4-6:有道云笔记

3思维导图:有道云笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值