1.數組概念
數組:相同數據類型的集合。
定義格式:數據類型 數組名[成員個數];
示例:char buff[10]; --表示定義一個char類型數組buff,buff可以存放10個char類型變量;
2.數組特性
1.數組空間連續的,下標是0開始的,最后一個成員下標為成員個數-1;
2.數組名字表示數組首地址。
3.數組可以整體賦值(必須在定義數組時完成),也可以單個成員賦值;
4.數組空間大小計算:sizeof(數組名);成員個數:sizeof(數組名)/sizeof(數組名[0]);
5.數組整體初始化時,未初始化的成員默認初始化為0;單個成員賦值時,未初始化的成員為隨機值。
示例:
#include
int main()
{
int buff[5]={10};/*定義一個int類型數組*/
int data[]={10,20,20};/*定義一個int類型數組并完成初始化*/
printf("buff數組空間:%ldn",sizeof(buff));
printf("data數組空間:%ldn",sizeof(data));
printf("buff數組成員個數:%ldn",sizeof(buff)/sizeof(int));
printf("data數組成員個數:%ldn",sizeof(data)/sizeof(data[0]));
int count=sizeof(buff)/sizeof(int);
int i=0;
/*數組遍歷*/
for(i=0;i
示例2:定義一個5個成員整型數組,從鍵盤上獲取5個整數,輸出數組所有成員(正向和逆向);輸出最大值,最小值和平均值;
#include
int main()
{
int buff[5];
int count=sizeof(buff)/sizeof(buff[0]);
printf("請輸入%d個整數:",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.二維數組
一維數組僅有一行,二維數組則有行和列。
二維數組定義格式:數據類型 變量名[參數1][參數2];
示例:int buff[3][4];
行列性質:定義一個int類型的二維數組,二維數組有3行4列;
數組關系:定義一個int類型的二維數組,[3]表示在二維數組中存放3個一維數組,[4]表示每一個一維數組中有4個int類型成員。
二維數組空間計算:sizeof(buff);
二維數組行計算:sizeof(buff)/sizeof(buff[0])
二維數組列計算:sizeof(buff[0])/sizeof(int )
- 二維數組定義及輸出示例:
#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]);//計算行
printf("line=%dn",line);
int row=sizeof(array2[0])/sizeof(int);//sizeof(int)等同于sizeof(array2[0][0])
printf("row=%dn",row);
int i,j;
//二維數組遍歷
for(i=0;i
4.函數
函數作用:提高代碼利用率,是程序結構更簡潔、清晰。
函數特性:函數功能單一,重復利用性高;
4.1 函數格式
返回值類型 函數名(形參)
{
語句塊;
}
函數沒有返回值時,返回值類型則用void表示
函數不需要傳參時,形參則用void表示。
4.2 注意事項
1.函數形參不能為靜態變量
原因:
1.靜態變量只會初始化一次,而函數形參每一次函數調用都會重新賦值。
2.靜態變量生存周期是和main函數一樣,而函數形參只能作用于當前函數。
2.函數形參與實參
1.函數形參是變量時不能改變實參的值。形參要改變實參的值需要通過指針方式。
2.函數形參只能作用于當前函數,形參名和實參名可以不一樣,但形參類型和實參類型必須一一匹配。函數形參由調用函數時分配空間,在函數結束時釋放空間。
3.函數返回值
1.函數返回值可以返回函數局部變量的值,不能返回局部變量的地址。
4.3 函數示例
形參為int類型,返回值為int類型。
寫一個函數實現求兩個數之和;
#include
int func(int,int);/*聲明函數*/
int main()
{
int data;
int a=10;
int b=20;
data=func(a,b);
printf("data=%dn",data);
}
/*
寫一個函數實現求兩個數之和;
*/
int func(int a,int b)
{
return a+b;
}
形參為數組類型,返回值為void;
編寫一個函數,實現數組遍歷。
#include
void array_print(int buff[],int count);//聲明函數
int main()
{
int buff[]={10,20,30,42,20,20};
printf("數組空間大小:%ldn",sizeof(buff));
array_print(buff,sizeof(buff)/sizeof(int));
}
/*
實現函數:完成數組遍歷
形參:buff[] --要遍歷的數組
count -- 數組成員個數
返回值:無
*/
void array_print(int buff[],int count)
{
int i=0;
//printf("數組空間大小:%ldn",sizeof(buff));//錯誤,不能對形參進行空間計算,對地址sizeof返回值永遠都為8
for(i=0;i
編寫一個函數,實現二維數組遍歷。
#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]);//計算行
printf("line=%dn",line);
//計算列
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語言
+關注
關注
180文章
7604瀏覽量
136794 -
函數
+關注
關注
3文章
4331瀏覽量
62596 -
數組
+關注
關注
1文章
417瀏覽量
25943
發布評論請先 登錄
相關推薦
評論