今天是跟著b站bit鵬哥學(xué)習(xí)C語(yǔ)言的第18天,今天的學(xué)習(xí)內(nèi)容是數(shù)組,包括一維數(shù)組和二維數(shù)組;
成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),富川網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:富川等地區(qū)。富川做網(wǎng)站價(jià)格咨詢:18980820575當(dāng)我們定義一兩個(gè)數(shù)字變量時(shí)我們會(huì)?
int a=0;int b=0;
那當(dāng)我們定義好多數(shù)字時(shí)還會(huì)傻傻的向上面那樣定義一整串的變量嗎?那樣就會(huì)將大量的時(shí)間浪費(fèi)在定義變量上于是就有了”數(shù)組“
數(shù)組?
定義:用于存儲(chǔ)多個(gè)相同類(lèi)型數(shù)據(jù)的集合;
一:一維數(shù)組
1:一維數(shù)組的創(chuàng)建
#includeint main ()
{
int a[];
return0
}
向上面那樣我們就創(chuàng)建了一個(gè)int類(lèi)型數(shù)組名為a的數(shù)組;
#includeint main ()
{
char a[];
return 0;
}
向上面那樣我們就創(chuàng)建了一個(gè)char類(lèi)型數(shù)組名為a的數(shù)組;
2:一維數(shù)組的初始化;
#includeint main()
{
//int n = 8;
//int arr[n] = { 1,2,3,4,5,6,7,8 };這樣的寫(xiě)法一般是錯(cuò)誤的 []內(nèi)一般要為常量
int arr[8] = { 1,2,3,4,5,6,7,8 };
// 完全初始化 數(shù)組里面有八個(gè)元素
int arr[8] = { 1,2,3,4,5 };
//不完全初始化 未初始化的元素為0
char arr1[] = { 'a','b','c','d','\0'};
char arr2[] = "abcd";
//上面兩個(gè)都是字符數(shù)組但是第一個(gè)數(shù)組在最后一定要加 '\0'
//'\0'計(jì)算大小時(shí)(sizeof)參與計(jì)算長(zhǎng)度(strlen)是不參與
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
注意?。。。篬 ]中的數(shù)組可以省略
3:一維數(shù)組的大小
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[] = "adcdefghi";
printf("%d \n", sizeof arr);
printf("%d \n", sizeof ch);
return 0;
}
4:數(shù)組的訪問(wèn)
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i< 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
注意?。。。涸L問(wèn)數(shù)組時(shí)下標(biāo)是從0開(kāi)始的
5:數(shù)組在內(nèi)存中的存放
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i< 10; i++)
{
printf("%d\n",&arr[i]);
}
return 0;
}
此外, 我們也可以用指針來(lái)訪問(wèn)數(shù)組
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = arr;
for (int i = 0; i< 10; i++)
{
printf("%d ", *p);
p++;
}
return 0;
}
一維數(shù)組總結(jié):
1:數(shù)組在內(nèi)存中是連續(xù)存放的
2:隨著下標(biāo)的增長(zhǎng),地址是由高到低變化的
二:二維數(shù)組
二維數(shù)組:是用來(lái)描述一個(gè)二維表;表四幾行幾列;
1:二維數(shù)組的創(chuàng)建
#includeint main ()
{
int a[2][3];
return 0;
}
像這樣我們就創(chuàng)建了一個(gè)2行3列的二維數(shù)組;
2:二維數(shù)組的初始化
int main()
{
int arr[2][3] = { 1,2,3,4, };
int arr3[2][3] = { {1,2} ,{4,5} };
//不完全初始化 后面補(bǔ)0
int arr1[2][3] = { 1,2,3,4,5,6 };
int arr2[2][3] = { {1,2,3},{4,5,6} };
//完全初始化
return 0;
}
注意?。。。憾S數(shù)組中只有第二個(gè)[ ]的數(shù)組可以省略
3:二維數(shù)組的訪問(wèn)
int main()
{
int arr[2][3] = { 1,2,3,4, };
int arr3[2][3] = { {1,2} ,{4,5} };
//不完全初始化 后面補(bǔ)0
int arr1[2][3] = { 1,2,3,4,5,6 };
int arr2[2][3] = { {1,2,3},{4,5,6} };
//完全初始化
for (int i = 0; i< 2; i++)
{
for (int j = 0; j< 3; j++)
{
printf("%d ", arr1[i][j]);
}
}
return 0;
}
4:二維數(shù)組在內(nèi)存中的存放
int main()
{
int arr[2][3] = { 1,2,3,4, };
int arr3[2][3] = { {1,2} ,{4,5} };
//不完全初始化 后面補(bǔ)0
int arr1[2][3] = { 1,2,3,4,5,6 };
int arr2[2][3] = { {1,2,3},{4,5,6} };
//完全初始化
for (int i = 0; i< 2; i++)
{
for (int j = 0; j< 3; j++)
printf("%p\n", &arr1[i][j]);
}
二維數(shù)組總結(jié):
1:二維數(shù)組在內(nèi)存中也是連續(xù)存放的!
2:一行內(nèi)部連續(xù),跨行也是連續(xù)的!
注意!?。。簲?shù)組名就是數(shù)組的首元素地址
兩個(gè)例外:
1:sizeof(數(shù)組名)--此時(shí)表示整個(gè)數(shù)組--計(jì)算的是整個(gè)數(shù)組的大小
2:&(數(shù)組名)取出的是整個(gè)數(shù)組的地址
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧