【C语言攻略】从零开始的C语言生活——初阶篇(5)

【C语言攻略】从零开始的C语言生活——初阶篇(5),第1张

【C语言攻略】从零开始的C语言生活——初阶篇(5)

目录

前言

数组

数组的创建方式

数组的下标

数组的正确食用方式

函数

函数存在的意义

结语


前言

好像是四天没有更新博客了,在学校里太忙了,虽然也不知道自己到底在忙些什么东西,发现这么久没有更新今天就赶紧肝了一篇出来。

数组

数组就是同一类型的一个集合,简单来讲,就是数组里面放着同一类型的变量。首先为什么会有数组?假设没有数组,你当你要创建100个变量时,你就需要一个一个的将变量写出来,十分的麻烦,且代码也不容易维护,但有了数组就可以很好的解决这一问题。

数组的创建方式

说了这么多,数组要怎么创建呢?数组名[数组大小] = { 初始化 };

#include
int main()
{
    //创建一个可以存放10个整形元素的数组空间
    int arr1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    //创建一个存放字符变量的数组
    char arr2[10] = {'a','b','c','d'};
    //存放浮点型double的浮点型数组
    double arr3[10] = {1.0, 2.0, 3.0, 4.0, 5.0};
    //创建了一个字符串
    char str[10] = "holle";

    return 0;
}

当数组没有给定数组大小时就必须初始化,当给数组的第一个元素初始化后,后面没有初始化的数组元素都默认初始化成0。C语言允许的数组创建方式:

#include
int main()
{
    //即给了数组大小,也给数组元素初始化了
    int arr1[5] = {1,2,3,4,5};
    //规定了数组大小,但没有初始化
    int arr2[10];
    //没有规定数组大小,但将数组初始化成0
    int arr3[] = { 0 };//必须初始化
    
    return 0;
}
数组的下标

数组的下标默认从0开始,数组元素可以通过下标来访问。

 

数组名就是数组的首元素地址,通过数组名可以访问数组的首元素下标。找到数组的首元素地址就可以找到整个数组。(%p打印地址)

其实介绍到数组还可以在介绍一个之前所讲过的一个关键字(sizeof),sizeof可以用来计算数组存放元素个数,计算数组所占大小再除以元素类型大小。

数组的正确食用方式
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10;i++)
	{
		//通过i做下标访问数组的元素
		printf("%d ", arr[i]);
	}
	return 0;
}
函数

在数学中以y=f(x)= x+1,当x在变化时,我们所得到的值也就不同。C语言中其实也是如此,当所给函数的参数不同,函数解决问题得到的值也就不同。可能两者的区别就在于数学的函数是需要你去求解,而C语言的函数只是一个求解的方法,求解的工作就交给计算机去做了。

Add函数的返回一个整形类型,所以用同样一个整形类型的变量去接收他的返回类型。其次是函数的参数是根据你所给定的参数数量而定。

函数的参数部分可以自己命名,就算与main函数的变量同名也没有关系。但在函数体内不允许重名。

一般在同一个工程里所写的函数一般尽量写在main函数的前面,因为程序是从上往下扫描的,如果他在前面没有找到这个函数,遇到main函数就进去执行了,当他在上面没有遇到这个函数而你却在调用他,编译器会报一个警告。虽然可以执行是因为编译器在往下执行时又碰到一个函数了,如果想解决这个警告就需要在main函数的前面加一个声明。

如果觉得说的复杂了,我可以讲个故事:假如你有个朋友叫张三(main函数),有一天张三在路上问你:“你认不认识李四啊?我找李四有点事情处理”,这时候你当然还不认识李四,然后张三告诉了你李四的长相(函数名),当你走着走碰到了一个和张三描述一模一样的人,你就问他:“你是不是李四啊?”。这个人就正好是李四,你就带着李四去找张三处理事情了。

如果你事先就已经认识李四了(声明),那么张三问你有没有见过李四时,你就只需要往后走,如果碰到李四就可以把它带到张三那里。如果没有碰到李四,那就说明这个李四在这个工程根本就不存在。

函数存在的意义

首先为什么要有函数?明明可以直接写在main函数里的还要再写个函数,不是又比之前写的代码更多了两行吗?其实不然,假设我写了一个Add的加法函数,当每次我想要进行一次加法运算时,就只需要写一个Add(参数1,参数2)就可以进行加法运算了,如果我没有写函数,我又需要把加法的过程再写一次,如果我需要使用加法函数我就需要每次就写一次加法,这样会非常的繁琐,也不利于代码的维护。

假设我调用了Add函数发现,这个函数计算的值不对,我就只需要去修改一下这个函数的错误就行了。如果不使用函数每次都把算法的过程写一遍,出错时,很难找出是哪一条代码出了问题。

函数就像一个加工厂,你只要把原材料给我的加工厂我就可以帮你加工材料,然后把成品交给你。

函数的注意事项:每个函数最好能保持他功能的独立性,比如一个加法函数里,就最好不要给他再加一个比较大小的功能了,他只要专心做好他的加法的功能就好了。

结语

疲惫……,明天有时间再肝一篇,争取能赶上学习进度吧……

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4948423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存