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

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領取全套視頻
        千鋒教育

        關注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術干貨  > C語言知識點(數組篇)

        C語言知識點(數組篇)

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

        C語言知識點(數組篇)

          數組

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

          二維數組在邏輯上是二維的,在物理上是一維的

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

          數組名作為類型:代表的是整個數組的大小

          數組名作為地址:代表的是數組首元素的地址

          對數組名取地址:代表的是數組的首地址

          3、描述一維數組的不初始化、部分初始化、完全初始化的不同點

          不初始化:如果是局部數組 數組元素的內容隨機 如果是全局數組,數組的元素內容為0

          部分初始化:未被初始化的部分自動補0

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

          4、數組的分類

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

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

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

          5、數組的特點

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

          6、對數值數組操作的時候需要注意啥

          對任意數值數組操作的時候必須逐個元素操作

          7、數組按維度分類

          分為一維數組、二維數組、多維數組

          8、如果數組元素不初始化

          如果是全局數組:不初始化元素內容為0

          如果是局部數組:不初始化元素內容不確定(隨機值)

          9、如何通過數組名訪問數組元素

          數組名+[數組元素的有效下標]

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

          20字節(jié)

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

          4字節(jié)

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

          5

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

          0 0 10 0 30

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

          48字節(jié)

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

          16字節(jié)

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

          4字節(jié)

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

          3

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

          4

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

          12

          20、二維數組初始化的方式有幾種

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

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

          21、如果有兩個二維數組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]運行結果:

          11

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

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

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

          23、談談字符數組的元素遍歷方式

          可以逐個元素使用%c數組

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

          24、談談gets和fgets給字符數組獲取字符串時的不同點

          gets獲取字符串的時候不會對獲取的長度做出判斷,容易造成字符數組越界

          fgets獲取字符串的時候會對獲取的長度做出判斷,不會造成字符串越界

          fgets相較于gets更安全

          25、不使用strlen函數完成字符串長度測量

        圖片1

          注意主函數記得調用test03();

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

        圖片2

          注意主函數記得調用test03();

          27、有以下兩個數組str1,str2 將str2的字符串 追加到 str1的尾部

        圖片3

          注意主函數記得調用test04();

          28、從字符串中 查找某個元素(第一次出現的下標)

        圖片4

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

          C

          void test06() {

          char str1[128]="";

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

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

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

          char str2[128]="";

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

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

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

          int pos=0;

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

          scanf("%d", &pos);

          //計算str2的長度

          int len = 0;

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

          //將i定位到str1的尾部 i也是str1的長度

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

          //判斷pos位置是否 合法

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

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

          return;//結束函數

          }

          //數據是否溢出

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

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

          return;//結束函數

          }

          //在str1移動數據 預留足夠的位置

          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("插入后的結果:%s\n", str1);

          }

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

          test06();

          return 0;

          }

        tags:
        聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
        10年以上業(yè)內強師集結,手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
        免費領取
        今日已有369人領取成功
        劉同學 138****2860 剛剛成功領取
        王同學 131****2015 剛剛成功領取
        張同學 133****4652 剛剛成功領取
        李同學 135****8607 剛剛成功領取
        楊同學 132****5667 剛剛成功領取
        岳同學 134****6652 剛剛成功領取
        梁同學 157****2950 剛剛成功領取
        劉同學 189****1015 剛剛成功領取
        張同學 155****4678 剛剛成功領取
        鄒同學 139****2907 剛剛成功領取
        董同學 138****2867 剛剛成功領取
        周同學 136****3602 剛剛成功領取
        相關推薦HOT
        雅江县| 方正县| 左贡县| 五家渠市| 腾冲县| 贵阳市| 顺义区| 民县| 和硕县| 金寨县| 察雅县| 遂川县| 霍林郭勒市| 晋城| 綦江县| 黔江区| 句容市| 温州市| 柯坪县| 二连浩特市| 磴口县| 高邮市| 洛南县| 曲靖市| 固始县| 汝南县| 卢湾区| 南漳县| 浑源县| 沈阳市| 淮南市| 清水河县| 宁夏| 祁东县| 郧西县| 礼泉县| 肃宁县| 博兴县| 连城县| 陆河县| 荆州市|