久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > C語言知識(shí)點(diǎn)(數(shù)組篇)

C語言知識(shí)點(diǎn)(數(shù)組篇)

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2022-10-26 15:19:07 1666768747

C語言知識(shí)點(diǎn)(數(shù)組篇)

  數(shù)組

  1、二維數(shù)組在物理上以及邏輯上的數(shù)組維度

  二維數(shù)組在邏輯上是二維的,在物理上是一維的

  2、數(shù)組名作為類型、地址、對(duì)數(shù)組名取地址的區(qū)別

  數(shù)組名作為類型:代表的是整個(gè)數(shù)組的大小

  數(shù)組名作為地址:代表的是數(shù)組首元素的地址

  對(duì)數(shù)組名取地址:代表的是數(shù)組的首地址

  3、描述一維數(shù)組的不初始化、部分初始化、完全初始化的不同點(diǎn)

  不初始化:如果是局部數(shù)組 數(shù)組元素的內(nèi)容隨機(jī) 如果是全局?jǐn)?shù)組,數(shù)組的元素內(nèi)容為0

  部分初始化:未被初始化的部分自動(dòng)補(bǔ)0

  完全初始化:如果一個(gè)數(shù)組全部初始化 可以省略元素的個(gè)數(shù) 數(shù)組的大小由初始化的個(gè)數(shù)確定

  4、數(shù)組的分類

  數(shù)組的分類主要是:靜態(tài)數(shù)組、動(dòng)態(tài)數(shù)組兩類。

  靜態(tài)數(shù)組:例如int arr[5];在程序運(yùn)行前就確定了數(shù)組的大小,運(yùn)行過程不能更改數(shù)組的大小。

  動(dòng)態(tài)數(shù)組:主要是在堆區(qū)申請(qǐng)的空間,數(shù)組的大小是在程序運(yùn)行過程中確定,可以更改數(shù)組的大小。

  5、數(shù)組的特點(diǎn)

  同一個(gè)數(shù)組所有的成員都是相同的數(shù)據(jù)類型,同時(shí)所有的成員在內(nèi)存中的地址是連續(xù)的

  6、對(duì)數(shù)值數(shù)組操作的時(shí)候需要注意啥

  對(duì)任意數(shù)值數(shù)組操作的時(shí)候必須逐個(gè)元素操作

  7、數(shù)組按維度分類

  分為一維數(shù)組、二維數(shù)組、多維數(shù)組

  8、如果數(shù)組元素不初始化

  如果是全局?jǐn)?shù)組:不初始化元素內(nèi)容為0

  如果是局部數(shù)組:不初始化元素內(nèi)容不確定(隨機(jī)值)

  9、如何通過數(shù)組名訪問數(shù)組元素

  數(shù)組名+[數(shù)組元素的有效下標(biāo)]

  10、如果有數(shù)組int arr[5]那么sizeof(arr)的結(jié)果

  20字節(jié)

  11、如果有數(shù)組int arr[5]那么sizeof(arr[0])的結(jié)果

  4字節(jié)

  12、如果有數(shù)組int arr[5]那么sizeof(arr)/sizeof(arr[0])的結(jié)果

  5

  13、如果有數(shù)組int arr[5]={[2]=10, [4]=30};則該數(shù)組每個(gè)元素的值

  0 0 10 0 30

  14、如果有二維數(shù)組int arr[3][4];則sizeof(arr)的結(jié)果

  48字節(jié)

  15、如果有二維數(shù)組int arr[3][4];則sizeof(arr[0])的結(jié)果

  16字節(jié)

  16、如果有二維數(shù)組int arr[3][4];則sizeof(arr[0][0])的結(jié)果

  4字節(jié)

  17、如果有二維數(shù)組int arr[3][4];則sizeof(arr)/sizeof(arr[0])的結(jié)果

  3

  18、如果有二維數(shù)組int arr[3][4];則sizeof(arr[0])/sizeof(arr[0][0])的結(jié)果

  4

  19、如果有二維數(shù)組int arr[3][4];則sizeof(arr)/sizeof(arr[0][0])的結(jié)果

  12

  20、二維數(shù)組初始化的方式有幾種

  分段初始化(部分初始化,全部初始化)

  連續(xù)初始化(部分初始化,全部初始化)

  21、如果有兩個(gè)二維數(shù)組int arr1[3][4]={ {1,2}, {5,6}, {9,10,11} }; int arr2[3][4]={ 1,2, 5,6, 9,10,11}; 則arr1[1][2] +arr2[1][2]運(yùn)行結(jié)果:

  11

  22、談?wù)刢har arr1[]={'h','e','l','l','o'}; 和char arr2[]="hello"; 兩個(gè)數(shù)組的區(qū)別

  字符數(shù)組arr1逐個(gè)元素初始化,系統(tǒng)不會(huì)加'\0'字符串結(jié)束符,所以arr1的大小為5字節(jié)

  字符數(shù)組arr2是以字符串方式初始化,系統(tǒng)會(huì)自動(dòng)在字符串末尾加'\0',所以arr2的大小為6字節(jié)

  23、談?wù)勛址麛?shù)組的元素遍歷方式

  可以逐個(gè)元素使用%c數(shù)組

  可以使用%s輸出整個(gè)字符數(shù)組(需要注意:%s遇到‘\0’結(jié)束)

  24、談?wù)刧ets和fgets給字符數(shù)組獲取字符串時(shí)的不同點(diǎn)

  gets獲取字符串的時(shí)候不會(huì)對(duì)獲取的長(zhǎng)度做出判斷,容易造成字符數(shù)組越界

  fgets獲取字符串的時(shí)候會(huì)對(duì)獲取的長(zhǎng)度做出判斷,不會(huì)造成字符串越界

  fgets相較于gets更安全

  25、不使用strlen函數(shù)完成字符串長(zhǎng)度測(cè)量

圖片1

  注意主函數(shù)記得調(diào)用test03();

  26、有兩個(gè)字符數(shù)組str1 str2, str1獲取鍵盤輸入,將str1的字符串拷貝到 str2中(不允許使用strcpy)

圖片2

  注意主函數(shù)記得調(diào)用test03();

  27、有以下兩個(gè)數(shù)組str1,str2 將str2的字符串 追加到 str1的尾部

圖片3

  注意主函數(shù)記得調(diào)用test04();

  28、從字符串中 查找某個(gè)元素(第一次出現(xiàn)的下標(biāo))

圖片4

  29、鍵盤輸入第一個(gè)字符串str1,輸入第二個(gè)字符串str2,再輸入位置pos,要求將str2字符串插入到字符串str1的pos位置

  C

  void test06() {

  char str1[128]="";

  printf("親輸入一個(gè)字符串:");

  fgets(str1,sizeof(str1),stdin);

  str1[strlen(str1)-1]=0;

  char str2[128]="";

  printf("親輸入第二個(gè)字符串:");

  fgets(str2,sizeof(str2),stdin);

  str2[strlen(str2)-1]=0;

  int pos=0;

  printf("請(qǐng)輸入要插入的位置:");

  scanf("%d", &pos);

  //計(jì)算str2的長(zhǎng)度

  int len = 0;

  while(str2[len] && ++len);

  //將i定位到str1的尾部 i也是str1的長(zhǎng)度

  int i=0; while(str1[i] && ++i);

  //判斷pos位置是否 合法

  if(pos<0 || pos>i) {

  printf("下標(biāo)%d不無效\n", pos);

  return;//結(jié)束函數(shù)

  }

  //數(shù)據(jù)是否溢出

  if(i+len>sizeof(str1)) {

  printf("插入會(huì)越界,失敗\n");

  return;//結(jié)束函數(shù)

  }

  //在str1移動(dòng)數(shù)據(jù) 預(yù)留足夠的位置

  while(i>=pos) {

  str1[i+len] = str1[i];

  i--;

  }

  //將str2的字符串 插入到pos位置上

  int j=0;

  while(str2[j] != '\0') {

  str1[pos] = str2[j];

  pos++;

  j++;

  }

  printf("插入后的結(jié)果:%s\n", str1);

  }

  int main(int argc, char *argv[]) {

  test06();

  return 0;

  }

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
大數(shù)據(jù)測(cè)試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測(cè)試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲(chǔ)、MapReduce、實(shí)時(shí)計(jì)算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項(xiàng)目的類文件、資源文件以及依賴庫等...詳情>>

2023-10-14 23:01:49
站群服務(wù)器是什么?

站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個(gè)人擁有,并且經(jīng)常會(huì)互相鏈...詳情>>

2023-10-14 22:46:12
自編碼器是什么?

一、自編碼器原理自編碼器的設(shè)計(jì)靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認(rèn)知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過編碼過程,形成一個(gè)隱藏層的特征表示...詳情>>

2023-10-14 22:41:10
什么是云網(wǎng)融合?

一、云網(wǎng)融合的定義云網(wǎng)融合是指將云計(jì)算與網(wǎng)絡(luò)技術(shù)相結(jié)合,實(shí)現(xiàn)資源的共享、業(yè)務(wù)的協(xié)同,將網(wǎng)絡(luò)與云端服務(wù)深度融合,提供更靈活、高效、安全的...詳情>>

2023-10-14 22:31:47