日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言字符数组不写,C语言数组

發布時間:2024/7/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言字符数组不写,C语言数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數組的基本使用

數組的定義格式:

類型 數組名[元素個數];

int ages[5] = {19, 29, 28, 27, 26};

數組的注意事項

存儲空間的劃分(內存的分配是從高地址到低地址進行的,但一個數組內部元素又是從低到高進行的)

數組名的作用,查看元素地址

數組越界的注意

使用注意

正確寫法

> int ages[5] = {10 , 11, 12, 67, 56};

> int ages[5] = {10, 11};

> int ages[5] = {[3] = 10, [4] = 11};

> int ages[] = {10, 11, 14};

> int ages['A'-50] = {10, 11, 12, 14, 16};

> /*

int count = 5;

int ages[count];

ages[0] = 10;

ages[1] = 11;

ages[2] = 18;

*/

錯誤寫法

//第一種情況~沒有初始化數組個數,并不知道需要分配多少內存空間

int ages[];

//第二種情況只能在定義數組的同時進行初始化

int ages[5];

ages = {10, 11, 12, 14};

//第三種情況 如果想再定義數組的同時進行初始化,數組元素個數必須是常量,或者不寫

int count = 5;

int ages[count] = {10, 11, 12};

計算數組元素的個數

int count = sizeof(ages)/sizeof(int);

數組和函數

// 數組作為函數參數,可以省略元素個數

// 數組作為函數參數,傳遞是整個數組的地址,修改函數形參數組元素的值,會影響到外面的實參數組

void change(int array[])

{

array[0] = 100;

}

//基本數據作為函數參數是值傳遞

void change2(int n)

{

n = 100;

}

int main()

{

int ages[6] = {10, 11, 10, 11, 10, 11};

change(ages);

change2(ages[0]);

return 0;

}

獲取數組中的最大值

int maxOfArray(int array[], int length)

{

// 數組當做函數參數傳遞時,會當做指針變量來使用,指針變量在64bit編譯器環境下,占據8個字節

//int size = sizeof(array);

//printf("array=%d\n", size); 得到的是8

// 1.定義一個變量存儲最大值(默認就是首元素)

int max = array[0];

// 2.遍歷所有元素,找出最大值

for (int i = 1; i

{

// 如果當前元素大于max,就用當前元素覆蓋max

if (array[i] > max)

{

max = array[i];

}

}

return max;

}

二維數組

什么是二維數組?

一個數組能表示一個班人的年齡,如果想表示很多班呢?

int ages[3][10]; 三個班,每個班10個人

相當于3行10列

相當于裝著3個一維數組

二維數組是一個特殊的一維數組:它的元素是一維數組。例如int a[2][3]可以看作由一維數組a[0]和一維數組a[1]組成,這兩個一維數組都包含了3個int類型的元素

int main()

{

/*

1 淺藍色

2 深藍色

3 黃色

4 紅色

-1 沒有

*/

int cubes[5][5] = {

{1, -1, -1, -1, -1},

{1, 1, -1, 2, -1},

{4, 1, 2, 2, 2},

{4, 3, 3, 3, 3},

{4, 3, 3, 3, 3}

};

return 0;

}

字符串

char name[] = "jackChan";

char name2[8] = {'i', 't', '\0'};

字符串是以 \0為標志的

/*

\0的作用

1.字符串結束的標記

2.printf("%s", name2);

會從name2這個地址開始輸出字符,直到遇到\0為止

因為name2只是普通的字符數組,(沒有指定分配多少內存空間,就會以字符的個數進行分配存儲空間,由于不包含\0,所以是一個普通的字符數組,而printf中%s是字符串,所以會先找到name2的內存地址,"注意:分配內存的時候尋址是先大后小,所以name[]的內存地址比name2的內存地址大",沒有\0,會繼續向下找到name[]中,直到遇到\0才結束)

*/

int main()

{

char name[] = "itc\0ast";

char name2[] = {'o', 'k'};

printf("%s\n", name2); //輸出的結果是okitc

// printf("%s\n", &name2[1]);

return 0;

}

strlen函數

/*

strlen 函數:計算字符串的長度

1 計算的是字符數,并不是字數,一個漢字算作3個字符

2 計算的字符不包含\0

3 從某個地址開始數 字符的個數,直到遇到\0為止

4 strlen 函數聲明在string.h中

*/

#include

#include

int main()

{

int size = strlen("哈haha");

printf("%d\n", size);

char name[] = "jack";

printf("%s\n", name); // jack

printf("%c\n", name[3]); // k

return 0;

}

字符串數組

#include

int main()

{

char name[] = "jack";

char name1[] = "rose";

char name2[] = "jim";

char name3[] = "jake";

char names[2][10]= {"jack", "rose"};

//printf("%s\n", names[0]);

//printf("%c\n", names[0][3]);

char names2[2][10] =

{

{'j', 'a', 'c', 'k', '\0'},

{'r', 'o', 's', 't', '\0'}

};

return 0;

}

總結

以上是生活随笔為你收集整理的c语言字符数组不写,C语言数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。