如何看別人網(wǎng)站用什么做的seo網(wǎng)站推廣全程實(shí)例
數(shù)組
- 一.數(shù)組的概念
- 二. 一維數(shù)組的創(chuàng)建和初始化
- 2.1數(shù)組的創(chuàng)建
- 2.2數(shù)組的初始化
- 錯(cuò)誤的初始化
- 2.3 數(shù)組的類型
- 三. 一維數(shù)組的使用
- 3.1數(shù)組的下標(biāo)
- 3.2數(shù)組元素的打印
- 3.2數(shù)組元素的輸入
- 四. 一維數(shù)組在內(nèi)存中的存儲(chǔ)
- 五. 二維數(shù)組的創(chuàng)建
- 5.1二維數(shù)組的概念
- 5.2如何創(chuàng)建二維數(shù)組
- 六·.二維數(shù)組的初始化
- 6.1不完全初始化
- 6.2完全初始化
- 6.3按行初始化
- 6.4 初始化時(shí)省略行,但是不能省略列
- 七.二維數(shù)組的使用
- 7.1 二維數(shù)組的輸入和輸出
- 八. 二維數(shù)組在內(nèi)存中的存儲(chǔ)
- 最后還有一個(gè)題目就是**多個(gè)字符從兩端移動(dòng),向中間匯聚**
一.數(shù)組的概念
數(shù)組是?組相同類型元素的集合
1.數(shù)組中存放的是1個(gè)或者多個(gè)數(shù)據(jù),但是數(shù)組元素個(gè)數(shù)不能為0。
2.數(shù)組中存放的多個(gè)數(shù)據(jù),類型是相同的。
二. 一維數(shù)組的創(chuàng)建和初始化
2.1數(shù)組的創(chuàng)建
type arr_x[n]//n是數(shù)組元素個(gè)數(shù)
存放在數(shù)組的值被稱為數(shù)組的元素,數(shù)組在創(chuàng)建的時(shí)候可以指定數(shù)組的大小和數(shù)組的元素類型。
上述代碼中的type指的是數(shù)組中存放的數(shù)據(jù)類型,數(shù)據(jù)類型可以是char
, short
,int
等等…
arr_x
指的是數(shù)組名的名字
[]
是下標(biāo)引用操作符
比如:有20個(gè)整型元素,存放在數(shù)組中,此時(shí)可以創(chuàng)建一個(gè)一維數(shù)組:
int arr[20]
當(dāng)然其他類型也可以,比如:
char ch[20];
float core[10];
2.2數(shù)組的初始化
如何對(duì)數(shù)組進(jìn)行初始化呢,下面就來解釋
int arr[5]={1,2,3,4,5};
上述代碼就是數(shù)組的完全初始化
int arr1[5]={0};
上述代碼就是數(shù)組的不完全初始化,也就是第一個(gè)元素為1,其余未初始化的數(shù)據(jù),默認(rèn)就是0
錯(cuò)誤的初始化
int a[2]={0,1,23,4,5};
上述代碼會(huì)報(bào)錯(cuò),因?yàn)樵O(shè)置的初始值太多
2.3 數(shù)組的類型
數(shù)組也是具有類型的,數(shù)組也算是一種自定義類型,把數(shù)組名去掉剩下的就是數(shù)組類型
比如
char arr1[20];
int arr2[30];
arr1數(shù)組的類型就是char [20]
arr2數(shù)組的類型就是 int [30]
三. 一維數(shù)組的使用
3.1數(shù)組的下標(biāo)
C語?規(guī)定數(shù)組是有下標(biāo)的,下標(biāo)是從0開始的,假設(shè)數(shù)組有n個(gè)元素,最后?個(gè)元素的下標(biāo)是n-1,下標(biāo)就相當(dāng)于數(shù)組元素的編號(hào),如下:
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
在C語?中數(shù)組的訪問提供了?個(gè)操作符[]
,這個(gè)操作符叫:下標(biāo)引用操作符
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10}; printf("%d\n", arr[7]);//8printf("%d\n", arr[3]);//4return 0;
}
3.2數(shù)組元素的打印
這里我們直接訪問數(shù)組下標(biāo)就可以實(shí)現(xiàn)數(shù)組打印
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int i = 0;for(i=0; i<10; i++){printf("%d ", arr[i]);}return 0;
}
下面是運(yùn)行結(jié)果
3.2數(shù)組元素的輸入
這里我們用for‘循環(huán)來實(shí)現(xiàn)數(shù)組的輸入
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int i = 0;for (i = 0; i < 10; i++){scanf("%d", &arr[i]);}for (i = 0; i < 10; i++){printf("%d ", arr[i]);}return 0;
}
下面是運(yùn)行結(jié)果
四. 一維數(shù)組在內(nèi)存中的存儲(chǔ)
下面一段代碼,將打印數(shù)組的地址
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int i = 0;for (i = 0; i < 10; i++){printf("&arr[%d] = %p\n ", i, &arr[i]);}return 0;
}
下面是運(yùn)算結(jié)果:
從輸出的結(jié)果來看,數(shù)組隨著下標(biāo)的增?,地址是由小到大變化的,并且我們發(fā)現(xiàn)每兩個(gè)相鄰的元素之間相差4(因?yàn)?個(gè)整型是4個(gè)字節(jié))。所以:數(shù)組在內(nèi)存中是連續(xù)存放的。
五. 二維數(shù)組的創(chuàng)建
5.1二維數(shù)組的概念
如果我們把?維數(shù)組做為數(shù)組的元素,這時(shí)候就是?維數(shù)組,?維數(shù)組作為數(shù)組元素的數(shù)組被稱為三維數(shù)組,?維數(shù)組以上的數(shù)組統(tǒng)稱為多維數(shù)組。
5.2如何創(chuàng)建二維數(shù)組
type arr_zy[n][n]//n是常量//如:
int arr_zy[3][7]
double arr_zy1[5][6]
解釋上述代碼中的信息:
3代表三行
7代表每行有7個(gè)元素
int表示數(shù)組的每個(gè)元素都是整型
arr_zy數(shù)組名,可以自定義
六·.二維數(shù)組的初始化
在創(chuàng)建變量或者數(shù)組的時(shí)候,給定?些初始值,被稱為初始化。
6.1不完全初始化
int arr_zy[2][4]={1,2,3};
double arr_zy1[3][6]={6,5,2};
6.2完全初始化
int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
6.3按行初始化
int arr4[3][5] = {{1,2},{3,4},{5,6}};
6.4 初始化時(shí)省略行,但是不能省略列
int arr6[][5] = {1,2,3,4,5,6,7};
int arr7[][5] = {{1,2}, {3,4}, {5,6}};
七.二維數(shù)組的使用
7.1 二維數(shù)組的輸入和輸出
我們只要能夠按照?定的規(guī)律產(chǎn)?所有的?和列的數(shù)字就行;以上?段代碼中的arr數(shù)組為例,行的選擇范圍是0~ 2,列的取值范圍是0~4,所以我們可以借助循環(huán)實(shí)現(xiàn)?成所有的下標(biāo)
int main()
{int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };int i = 0;//遍歷?//輸?for (i = 0; i < 3; i++) //產(chǎn)??號(hào){int j = 0;for (j = 0; j < 5; j++) //產(chǎn)?列號(hào){scanf("%d", &arr[i][j]); //輸?數(shù)據(jù)}}//輸出for (i = 0; i < 3; i++) //產(chǎn)??號(hào){int j = 0;for (j = 0; j < 5; j++) //產(chǎn)?列號(hào){printf("%d ", arr[i][j]); //輸出數(shù)據(jù)}printf("\n");}return 0;
}
下面是運(yùn)行結(jié)果:
八. 二維數(shù)組在內(nèi)存中的存儲(chǔ)
可以打印出數(shù)組所有元素的地址的。代碼如下:
int main()
{int arr[3][5] = { 0 };int i = 0;int j = 0;for (i = 0; i < 3; i++){for (j = 0; j < 5; j++){printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);}}return 0;
}
運(yùn)行結(jié)果如下:
最后還有一個(gè)題目就是多個(gè)字符從兩端移動(dòng),向中間匯聚
#include<string.h>
#include<time.h>
#include<stdio.h>
#include<Windows.h>
int main()
{char arr1[] = "welcome to zy space";char arr2[] = "#######################";int left = 0;int right = strlen(arr1) - 1;printf("%s\n", arr2);while (left <= right){Sleep(1000);arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;printf("%s\n", arr2);}return 0;
}
運(yùn)行結(jié)果: