欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:算法 C語言初識數(shù)組

柚子快報邀請碼778899分享:算法 C語言初識數(shù)組

http://yzkb.51969.com/

這篇博客主要講述的是內(nèi)容是

一維數(shù)組的創(chuàng)建和初始化? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 二位數(shù)組的使用

一維數(shù)組的使用? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?二位數(shù)組在內(nèi)存的中存儲

一維數(shù)組在內(nèi)存中的存儲? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)組越界

一. 一維數(shù)組的創(chuàng)建和初始化

數(shù)組的概念:

數(shù)組是一組相同類型元素的集合

typed_int arr_name [n];

typed_int是數(shù)組元素的類型

arr_name是數(shù)組名

n是數(shù)組元素

1.1一維數(shù)組的創(chuàng)建

數(shù)組的初始化

int arr1 [10];

char arr1[10];

float arr2[1];

double arr5[2];

有人會問了,數(shù)組的創(chuàng)建可不可以用變量創(chuàng)建

在C99標(biāo)準(zhǔn)之前數(shù)組的創(chuàng)建必須是常量不能使用變量

#include

int main()

{

int n = 10;

int arr[n] = { 1,2,3,4,5,6,7,8,9,10 }; //數(shù)組的初始化

printf("%d ", arr[n]);

return 0;

}

數(shù)組創(chuàng)建在C99標(biāo)準(zhǔn)之前,[ ]中要給一個常量才可以,不能使用變量

在C99標(biāo)準(zhǔn)支持了變長數(shù)組的概念,數(shù)組的大小可以使用變量指定,但是數(shù)組不能初始化

個人建議在創(chuàng)建數(shù)組時,能用常量還是常量,我們大部分使用數(shù)組都是常量定義很少使用變量定義

1.2 一維數(shù)組的初始化

數(shù)組的初始化是指,在創(chuàng)建數(shù)組的同時給數(shù)組的內(nèi)容一些合理初始值

int arr1[4] = {1 ,2 ,3}; //不完全初始化

不完全初始化,剩余的初始化為0

int arr2[ ] = {1, 2, 3, 4}; //不指定元素大小

數(shù)組創(chuàng)建的時候如果不想指定數(shù)組的確定大小就得初始化。

數(shù)組的元素個數(shù)根據(jù)初始化的內(nèi)容來確定

char arr3[3] = {'a' , 98 , 'c'}; //字符類型

字符類型結(jié)尾是隨機值

1.3一維數(shù)組的使用

對于數(shù)組的使用我們之前介紹了一個操作符:[ ] 下標(biāo)引用操作符,就是數(shù)組訪問的操作符

#include

int main()

{

int arr[10] = { 0 }; //數(shù)組不完全初始化

int sz = sizeof(arr) / sizeof(arr[0]);

int i = 0;

for (i = 0; i < 10; i++)

{

arr[i] = i;

}

for (i = 0; i < 10; i++)

{

printf("%d ", i);

}

return 0;

}

不知道sizeof是什么意思可以去看前面的章節(jié)

數(shù)組是使用下標(biāo)來訪問的,下標(biāo)是從0開始

數(shù)組的大小可以通過計算得到

1.4一維數(shù)組在內(nèi)存中的存儲

#include

int main()

{

int arr[10] = { 0 };

int i = 0;

int sz = sizeof(arr) / sizeof(arr[0]);

for (i = 0; i < sz; i++)

{

printf("%p\n", &arr[i]);

}

return 0;

}

可以看到睡著數(shù)組下標(biāo)的增長,元素的地址也再有規(guī)律的遞增,從之前的4遞增到8由低到高

數(shù)組在內(nèi)存中是連續(xù)存放的

二.二維數(shù)組的創(chuàng)建和初始化

2.1 二維數(shù)組的創(chuàng)建

int arr[3][4]; //整型

char arr[3][4]; //字符類型

double arr[2][4] //雙精度浮點型

2.2 二維數(shù)組的初始化

int arr[3][4] = {1,2,3,4};

int arr[3][4] = {{1,2},{4,5}};

二維數(shù)組如果有初始化,行可以省略,列不能省略

int arr[][4] = {{2,3},{4,5}};

2.3 二維數(shù)組的使用

#include

int main()

{

int arr[3][4] = { 0 };

int i = 0;

for (i = 0; i < 3; i++)

{

int j = 0;

for (j = 0; j < 4; j++)

{

arr[i][j] = i * 4+ j;

}

}

for (i = 0; i < 3; i++)

{

int j = 0;

for (j = 0; j < 4; j++)

{

printf("%-2d ", arr[i][j]);

}

}

return 0;

}

2.4 二維數(shù)組在內(nèi)存中的存儲

#include

int main()

{

int arr[3][4];

int i = 0;

for (i = 0; i < 3; i++)

{

int j = 0;

for (j = 0; j < 4; j++)

{

printf("%p\n", &arr[i][j]);

}

}

return 0;

}

二維數(shù)組在內(nèi)存中也是連續(xù)存儲的

三.數(shù)組越界

數(shù)組的下標(biāo)是有范圍限制的

數(shù)組的下標(biāo)規(guī)定是從0開始的,如果數(shù)組有n個元素,最后一個元素的下標(biāo)就是n -1

所以數(shù)組的下標(biāo)如果小于0,或者大于n -1,就是數(shù)組越界訪問,超出了數(shù)組合法空間的訪問

C語言本身是不做數(shù)組下標(biāo)的越界訪問,編譯器也不一定報錯,但是編譯器不會報錯,并不意味著程序就是正確的

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\n", arr[i]);

}

return 0;

}

二維數(shù)組的行和列也可能存在越界

四. 數(shù)組作為函數(shù)參數(shù)

4.1 冒泡排序

#include

void bubble_sort(int *arr, int sz)

{

int i = 0;

//冒泡排序的趟數(shù)

for (i = 0; i < sz - 1; i++)

{

//一趟冒泡排序的過程

int j = 0;

for (j = 0; j < sz - 1 - i; j++)

{

if (arr[j] > arr[j + 1])

{

int tmp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = tmp;

}

}

}

}

int main()

{

int arr[] = { 3,1,5,9,2,4,7,6,8,0 }; //數(shù)組

//排序 - 升序

//冒泡排序

int sz = sizeof(arr) / sizeof(arr[0]); //計算元素個數(shù)

bubble_sort(arr, sz);//arr是數(shù)組首元素的地址

int i = 0;

for (i = 0; i < 10; i++)

{

printf("%d ", arr[i]);

}

return 0;

}

4.2數(shù)組名

int main()

{

int arr[10] = { 1,2,3,4,5 };

printf("%p\n", arr);

printf("%p\n", &arr[0]);

printf("%d\n", *arr);

return 0;

}

可以發(fā)現(xiàn)地址都是相同的

數(shù)組名是數(shù)組首元素的地址

還有2個例外:sizeof? ?&

int main()

{

int arr[10] = { 0 };

printf("%d\n", sizeof(arr));

return 0;

}

sizeof計算整個數(shù)組的大小,sizeof內(nèi)部單獨放一個數(shù)組名,數(shù)組名表示整個數(shù)組

&取出的是數(shù)組的地址,&數(shù)組名,數(shù)組名表示整個數(shù)組

柚子快報邀請碼778899分享:算法 C語言初識數(shù)組

http://yzkb.51969.com/

相關(guān)鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19065257.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄