C語言學習(三)

課外話:挫折是人生的常態,在我們遭遇疫情,不應一味放大痛苦讓其充塞心靈。我們要學會調適心絃,坦然面對,全國人民團結一致,就一定會戰勝疫情。祖國加油!武漢加油!!!

《你的答案》

——轉載自嗶哩嗶哩up主:養豬的小仙女丫頭

本節大綱

數組
程序的模塊化設計

數組

定義

所謂數組,是有序的元素序列。

[1] 若將有限個類型相同的變量的集合命名,那麼這個名稱爲數組名。組成數組的各個變量稱爲數組的分量,也稱爲數組的元素,有時也稱爲下標變量。用於區分數組的各個元素的數字編號稱爲下標。數組是在程序設計中,爲了處理方便,
把具有相同類型的若干元素按無序的形式組織起來的一種形式。 [1] 這些無序排列的同類數據元素的集合稱爲數組。
數組是用於儲存多個相同類型數據的集合。

注:引用自百度百科
描述:由基礎數據類型組成的相同類型數據的集合稱爲數組
本節我們回顧一下第一節基礎數據類型
基本數據類型:

八大數據類型結構都可組成數組,在派生數據類型中的結構體、共用體,指針類型都可以組成數組(後續學習)
數組在內存空間的存儲爲連續性存儲即一層數據挨着一層

舉圖示例: 數據類型

內存的使用:內存分配

標準定義方法

方法一:(定義未初始化)

		signed int a[10];//數組名爲a,類型爲有符號整型
		signed short a[10];// 數組名爲a,類型爲有符號短整型
		signed long a[10];// 數組名爲a,類型爲有符號長整型
		unsigned int a[10];// 數組名爲a,類型爲無符號整型
		unsigned short a[10];// 數組名爲a,類型爲無符號短整型
		unsigned long a[10];// 數組名爲a,類型爲無符號長整型
		char a[10];// 數組名爲a,類型爲字符型
		float a[10];// 數組名爲a,類型爲單精度浮點型
		double a[10];// 數組名爲a,類型爲雙精度浮點型

除此之位還有第二種定義數組的方法,以有符號整型爲例子(定義且初始化)
方法二

		int a[] = {1,2,3,4,5};//數組名爲a,類型爲int,大小爲5*4字節
		int a[10] = {1,2};//數組名爲a,類型爲int,大小爲10*4字節

第三種(不常用,動態分配:即程序運行到這一步時開始分配空間)
方法三

		int *a = new int[5];//數組名爲a,類型爲int,大小爲5*4字節

注意
數組名爲數組在內存中的地址,數組首元素存儲在數組名內存中的地址,第二個元素在第一個的基礎上+4個字節爲第二個元素存放的地址(int型)。

編程案例1

#include <stdio.h>
	
int main()
{
		int i;
		int a[5]={1,2,3,4,5};
		for(i=0;i<5;i++)
			printf("%d\n",a[i]);
		printf("\n");
		for(i=0;i<5;i++)
			printf("%d\n",a[0]+i);
		return 0;
}

案例輸出

輸出結果:
編程案例1

程序的模塊化設計

C語言利用函數來實現程序的模塊化

函數定義方法:

函數的定義:
返回類型 名字(形式參數表列)
{
	函數體語句 
	return 表達式;
}
函數調用:
函數名(實際參數表列);

//引用自百度百科

種類

函數分爲 庫函數 和用戶自定義函數
C語言爲了方便用戶編寫程序,爲用戶開發了大量的庫函數,其定義在.h文件中,用戶可以調用這些函數實現強大的功能。

函數的用法:

函數按常規應放在主函數前面,若主函數放在前面則要在主函數前寫函數聲明。

編程案例2

#include <stdio.h>

int minus(int x,int y)
{
	return x-y;//返回x-y的值
}

int add(int x,int y)
{
	return x+y;//返回x+y的值
}

int main()//主函數
{
	int a,b;
	printf("請輸入a的值");
	scanf("%d",&a);
	printf("請輸入b的值");
	scanf("%d",&b);
	printf("a+b=%d\n",add(a,b));//add(a,b)爲函數調用
	printf("a-b=%d\n",minus(a,b));//minus(a,b)爲函數調用
	return 0;
}

案例輸出

編程案例2

編程案例3

#include <stdio.h>

int add(int x,int y);//函數聲明
int minus(int x,int y);//函數聲明
int main()//主函數
{
	int a,b;
	printf("請輸入a的值");
	scanf("%d",&a);
	printf("請輸入b的值");
	scanf("%d",&b);
	printf("a+b=%d\n",add(a,b));//add(a,b)爲函數調用
	printf("a-b=%d\n",minus(a,b));//minus(a,b)爲函數調用
	return 0;
}

int minus(int x,int y)
{
	return x-y;//返回x-y的值
}

int add(int x,int y)
{
	return x+y;//返回x+y的值
}

案例輸出

編程案例3

由此可看出兩個程序是等效的,爲函數編寫的兩種方式

編程練習

int a[10]={1,2,3,4,5,6,7,8,9,10};

由以上分別計算輸出第一項與第二項的和、差、乘、除,第二項與第三項的和、差、乘、除,依次類推到第九項與第十項的和、差、乘、除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章