1.數(shù)組概念
數(shù)組:相同數(shù)據(jù)類型的集合。
定義格式:數(shù)據(jù)類型 數(shù)組名[成員個(gè)數(shù)];
示例:char buff[10]; --表示定義一個(gè)char類型數(shù)組buff,buff可以存放10個(gè)char類型變量;
2.數(shù)組特性
1.數(shù)組空間連續(xù)的,下標(biāo)是0開始的,最后一個(gè)成員下標(biāo)為成員個(gè)數(shù)-1;
2.數(shù)組名字表示數(shù)組首地址。
3.數(shù)組可以整體賦值(必須在定義數(shù)組時(shí)完成),也可以單個(gè)成員賦值;
4.數(shù)組空間大小計(jì)算:sizeof(數(shù)組名);成員個(gè)數(shù):sizeof(數(shù)組名)/sizeof(數(shù)組名[0]);
5.數(shù)組整體初始化時(shí),未初始化的成員默認(rèn)初始化為0;單個(gè)成員賦值時(shí),未初始化的成員為隨機(jī)值。

示例:
#include
int main()
{
int buff[5]={10};/*定義一個(gè)int類型數(shù)組*/
int data[]={10,20,20};/*定義一個(gè)int類型數(shù)組并完成初始化*/
printf("buff數(shù)組空間:%ldn",sizeof(buff));
printf("data數(shù)組空間:%ldn",sizeof(data));
printf("buff數(shù)組成員個(gè)數(shù):%ldn",sizeof(buff)/sizeof(int));
printf("data數(shù)組成員個(gè)數(shù):%ldn",sizeof(data)/sizeof(data[0]));
int count=sizeof(buff)/sizeof(int);
int i=0;
/*數(shù)組遍歷*/
for(i=0;i

示例2:定義一個(gè)5個(gè)成員整型數(shù)組,從鍵盤上獲取5個(gè)整數(shù),輸出數(shù)組所有成員(正向和逆向);輸出最大值,最小值和平均值;
#include
int main()
{
int buff[5];
int count=sizeof(buff)/sizeof(buff[0]);
printf("請(qǐng)輸入%d個(gè)整數(shù):",count);
int i;
for(i=0;i=0;i--)
{
printf("%d ",buff[i]);
}
printf(“n”);
int min,max;
float avg=0;
min=max=buff[0];
for(i=0;i5;i++)
{
avg+=buff[i];
if(min?>buff[i])
{
min=buff[i];
}
if(max
3.二維數(shù)組
一維數(shù)組僅有一行,二維數(shù)組則有行和列。
二維數(shù)組定義格式:數(shù)據(jù)類型 變量名[參數(shù)1][參數(shù)2];
示例:int buff[3][4];
行列性質(zhì):定義一個(gè)int類型的二維數(shù)組,二維數(shù)組有3行4列;
數(shù)組關(guān)系:定義一個(gè)int類型的二維數(shù)組,[3]表示在二維數(shù)組中存放3個(gè)一維數(shù)組,[4]表示每一個(gè)一維數(shù)組中有4個(gè)int類型成員。
二維數(shù)組空間計(jì)算:sizeof(buff);
二維數(shù)組行計(jì)算:sizeof(buff)/sizeof(buff[0])
二維數(shù)組列計(jì)算:sizeof(buff[0])/sizeof(int )
- 二維數(shù)組定義及輸出示例:
#include
int main()
{
int array[3][4];
int array2[][4]={10,20,30,20,20};
printf("array=%lun",sizeof(array));//3*4*4=48
printf("array2=%lun",sizeof(array2));//2*4*4=32
int line=sizeof(array2)/sizeof(array2[0]);//計(jì)算行
printf("line=%dn",line);
int row=sizeof(array2[0])/sizeof(int);//sizeof(int)等同于sizeof(array2[0][0])
printf("row=%dn",row);
int i,j;
//二維數(shù)組遍歷
for(i=0;i
4.函數(shù)
函數(shù)作用:提高代碼利用率,是程序結(jié)構(gòu)更簡(jiǎn)潔、清晰。
函數(shù)特性:函數(shù)功能單一,重復(fù)利用性高;
4.1 函數(shù)格式
返回值類型 函數(shù)名(形參)
{
語句塊;
}
函數(shù)沒有返回值時(shí),返回值類型則用void表示
函數(shù)不需要傳參時(shí),形參則用void表示。
4.2 注意事項(xiàng)
1.函數(shù)形參不能為靜態(tài)變量
原因:
1.靜態(tài)變量只會(huì)初始化一次,而函數(shù)形參每一次函數(shù)調(diào)用都會(huì)重新賦值。
2.靜態(tài)變量生存周期是和main函數(shù)一樣,而函數(shù)形參只能作用于當(dāng)前函數(shù)。
2.函數(shù)形參與實(shí)參
1.函數(shù)形參是變量時(shí)不能改變實(shí)參的值。形參要改變實(shí)參的值需要通過指針方式。
2.函數(shù)形參只能作用于當(dāng)前函數(shù),形參名和實(shí)參名可以不一樣,但形參類型和實(shí)參類型必須一一匹配。函數(shù)形參由調(diào)用函數(shù)時(shí)分配空間,在函數(shù)結(jié)束時(shí)釋放空間。
3.函數(shù)返回值
1.函數(shù)返回值可以返回函數(shù)局部變量的值,不能返回局部變量的地址。
4.3 函數(shù)示例
形參為int類型,返回值為int類型。
寫一個(gè)函數(shù)實(shí)現(xiàn)求兩個(gè)數(shù)之和;
#include
int func(int,int);/*聲明函數(shù)*/
int main()
{
int data;
int a=10;
int b=20;
data=func(a,b);
printf("data=%dn",data);
}
/*
寫一個(gè)函數(shù)實(shí)現(xiàn)求兩個(gè)數(shù)之和;
*/
int func(int a,int b)
{
return a+b;
}
形參為數(shù)組類型,返回值為void;
編寫一個(gè)函數(shù),實(shí)現(xiàn)數(shù)組遍歷。
#include
void array_print(int buff[],int count);//聲明函數(shù)
int main()
{
int buff[]={10,20,30,42,20,20};
printf("數(shù)組空間大小:%ldn",sizeof(buff));
array_print(buff,sizeof(buff)/sizeof(int));
}
/*
實(shí)現(xiàn)函數(shù):完成數(shù)組遍歷
形參:buff[] --要遍歷的數(shù)組
count -- 數(shù)組成員個(gè)數(shù)
返回值:無
*/
void array_print(int buff[],int count)
{
int i=0;
//printf("數(shù)組空間大小:%ldn",sizeof(buff));//錯(cuò)誤,不能對(duì)形參進(jìn)行空間計(jì)算,對(duì)地址sizeof返回值永遠(yuǎn)都為8
for(i=0;i
編寫一個(gè)函數(shù),實(shí)現(xiàn)二維數(shù)組遍歷。
#include
void twoarray_print(int [][4],int ,int );
int main()
{
int array2[][4]={10,20,30,20,20};
int line=sizeof(array2)/sizeof(array2[0]);//計(jì)算行
printf("line=%dn",line);
//計(jì)算列
int row=sizeof(array2[0])/sizeof(int);//sizeof(array2[0][0])
printf("row=%dn",row);
twoarray_print(array2,line,row);
}
void twoarray_print(int buff[][4],int line,int row)
{
int i,j;
for(i=0;i
審核編輯:湯梓紅
-
C語言
+關(guān)注
關(guān)注
180文章
7628瀏覽量
139667 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4365瀏覽量
63847 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26291
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
C語言基礎(chǔ)知識(shí)科普
STM32單片機(jī)中的C語言基礎(chǔ)知識(shí)
C語言基礎(chǔ)知識(shí)(一)
C51語言的基礎(chǔ)知識(shí)點(diǎn)實(shí)例講解

為什么C語言函數(shù)不能返回數(shù)組?
C語言總結(jié)_數(shù)組知識(shí)
C語言-函數(shù)的定義、聲明、傳參
C語言函數(shù)參數(shù)介紹
STM32中C語言的基礎(chǔ)知識(shí)

評(píng)論