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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

數(shù)組的基本使用

數(shù)組的定義格式:

類型 數(shù)組名[元素個(gè)數(shù)];

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

數(shù)組的注意事項(xiàng)

存儲(chǔ)空間的劃分(內(nèi)存的分配是從高地址到低地址進(jìn)行的,但一個(gè)數(shù)組內(nèi)部元素又是從低到高進(jìn)行的)

數(shù)組名的作用,查看元素地址

數(shù)組越界的注意

使用注意

正確寫法

> 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;

*/

錯(cuò)誤寫法

//第一種情況~沒有初始化數(shù)組個(gè)數(shù),并不知道需要分配多少內(nèi)存空間

int ages[];

//第二種情況只能在定義數(shù)組的同時(shí)進(jìn)行初始化

int ages[5];

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

//第三種情況 如果想再定義數(shù)組的同時(shí)進(jìn)行初始化,數(shù)組元素個(gè)數(shù)必須是常量,或者不寫

int count = 5;

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

計(jì)算數(shù)組元素的個(gè)數(shù)

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

數(shù)組和函數(shù)

// 數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)

// 數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組

void change(int array[])

{

array[0] = 100;

}

//基本數(shù)據(jù)作為函數(shù)參數(shù)是值傳遞

void change2(int n)

{

n = 100;

}

int main()

{

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

change(ages);

change2(ages[0]);

return 0;

}

獲取數(shù)組中的最大值

int maxOfArray(int array[], int length)

{

// 數(shù)組當(dāng)做函數(shù)參數(shù)傳遞時(shí),會(huì)當(dāng)做指針變量來使用,指針變量在64bit編譯器環(huán)境下,占據(jù)8個(gè)字節(jié)

//int size = sizeof(array);

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

// 1.定義一個(gè)變量存儲(chǔ)最大值(默認(rèn)就是首元素)

int max = array[0];

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

for (int i = 1; i

{

// 如果當(dāng)前元素大于max,就用當(dāng)前元素覆蓋max

if (array[i] > max)

{

max = array[i];

}

}

return max;

}

二維數(shù)組

什么是二維數(shù)組?

一個(gè)數(shù)組能表示一個(gè)班人的年齡,如果想表示很多班呢?

int ages[3][10]; 三個(gè)班,每個(gè)班10個(gè)人

相當(dāng)于3行10列

相當(dāng)于裝著3個(gè)一維數(shù)組

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

int main()

{

/*

1 淺藍(lán)色

2 深藍(lán)色

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為標(biāo)志的

/*

\0的作用

1.字符串結(jié)束的標(biāo)記

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

會(huì)從name2這個(gè)地址開始輸出字符,直到遇到\0為止

因?yàn)閚ame2只是普通的字符數(shù)組,(沒有指定分配多少內(nèi)存空間,就會(huì)以字符的個(gè)數(shù)進(jìn)行分配存儲(chǔ)空間,由于不包含\0,所以是一個(gè)普通的字符數(shù)組,而printf中%s是字符串,所以會(huì)先找到name2的內(nèi)存地址,"注意:分配內(nèi)存的時(shí)候?qū)ぶ肥窍却蠛笮?所以name[]的內(nèi)存地址比name2的內(nèi)存地址大",沒有\(zhòng)0,會(huì)繼續(xù)向下找到name[]中,直到遇到\0才結(jié)束)

*/

int main()

{

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

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

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

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

return 0;

}

strlen函數(shù)

/*

strlen 函數(shù):計(jì)算字符串的長(zhǎng)度

1 計(jì)算的是字符數(shù),并不是字?jǐn)?shù),一個(gè)漢字算作3個(gè)字符

2 計(jì)算的字符不包含\0

3 從某個(gè)地址開始數(shù) 字符的個(gè)數(shù),直到遇到\0為止

4 strlen 函數(shù)聲明在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;

}

字符串?dāng)?shù)組

#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;

}

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。