C語言學(xué)習(xí)資源匯總,史上最全面總結(jié),沒有之一
C/C++學(xué)習(xí)資源(百度云盤鏈接)
計算機二級資料(過級專用)
C語言學(xué)習(xí)路線(從入門到實戰(zhàn))
編寫C語言程序的7個步驟和編程機制
C語言基礎(chǔ)-第一個C程序
C語言基礎(chǔ)-簡單程序分析
VS2019編寫簡單的C程序示例
簡單示例,VS2019調(diào)試C語言程序
C語言基礎(chǔ)-基本算法
C語言基礎(chǔ)-數(shù)據(jù)類型
C語言中的輸入輸出函數(shù)
C語言流程控制語句
C語言數(shù)組——一維數(shù)組
C語言數(shù)組——二維數(shù)組
C語言數(shù)組——字符數(shù)組
C語言中常用的6個字符串處理函數(shù)
精心收集了60個C語言項目源碼,分享給大家
C語言核心技術(shù)——函數(shù)
C代碼是怎樣跑起來的?
C語言實現(xiàn)字符串的加密和解密
C語言——文件的基本操作
使用C語言鏈表創(chuàng)建學(xué)生信息并且將信息打印輸出
圖解C語言冒泡排序算法,含代碼分析
實例分析C語言中strlen和sizeof的區(qū)別
開發(fā)C語言的3款神器,VS2019、VScode和IntelliJ Clion
動圖圖解C語言選擇排序算法,含代碼分析
動圖圖解C語言插入排序算法,含代碼分析
C語言指針數(shù)組和數(shù)組指針詳解
5分鐘搞懂C語言中的傳值和傳址
C語言實例專欄(持續(xù)更新中…)
什么是動態(tài)數(shù)組?動態(tài)數(shù)組是相對于靜態(tài)數(shù)組而言的,從“動”字可以看出它的靈活性。靜態(tài)數(shù)組的長度是預(yù)先定義好的,在整個程序中,一旦給定數(shù)組大小后就無法改變。而動態(tài)數(shù)組則不然,它可以根據(jù)程序需要重新指定數(shù)組大小。動態(tài)數(shù)組的內(nèi)存空間是由堆動態(tài)分配的,通過執(zhí)行代碼為其分配存儲空間,只有程序執(zhí)行到分配語句時,才為其分配存儲空間。
動態(tài)數(shù)組和一般數(shù)組(靜態(tài)數(shù)組)的區(qū)別在創(chuàng)建動態(tài)數(shù)組的過程中要遵循一個原則,那就是從外層向里層逐層創(chuàng)建,從里層向外層逐層釋放。如果要創(chuàng)建一個N維的動態(tài)數(shù)組,那么要從第一維開始創(chuàng)建,直到第N維為止;而釋放時與創(chuàng)建時相反,即從第N維開始釋放,直到第一維為止。下面我們一起來看看一維動態(tài)數(shù)組和二維動態(tài)數(shù)組。
一維動態(tài)數(shù)組類型說明符* 數(shù)組名 = (類型說明符*)malloc(數(shù)組長度*sizeof(類型說明符))
//
// Created by 沖哥 on 2022/11/26.
// 微信關(guān)注【C語言中文社區(qū)】,免費領(lǐng)取500G學(xué)習(xí)資料
//
#include#includeint main() {int n; //用來接收要創(chuàng)建的一維動態(tài)數(shù)組的長度
int *arr;
printf("請輸入所要創(chuàng)建的一維動態(tài)數(shù)組的長度:");
scanf("%d", &n);
if ((arr = (int *) malloc(sizeof(int) * n)) == NULL) {//使用malloc來動態(tài)分配內(nèi)存
printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
return -1;
}
for (int i = 0; i< n; i++) {//通過循環(huán)給數(shù)組賦值并在控制臺進行打印
arr[i] = i + 1;
printf("%d\t", arr[i]);
}
free(arr); //釋放內(nèi)存空間
return 0;
}
請輸入所要創(chuàng)建的一維動態(tài)數(shù)組的長度:8
1 2 3 4 5 6 7 8
二維動態(tài)數(shù)組類型說明符** 數(shù)組名 = (類型說明符**)malloc(第一維長度*sizeof(類型說明符*))
for(int i=0;i<第一維長度;i++){數(shù)組名[i]=(類型說明符*)malloc(第二維長度*sizeof(類型說明符))
}
//
// Created by 沖哥 on 2022/11/26.
// 微信關(guān)注【C語言中文社區(qū)】,免費領(lǐng)取500G學(xué)習(xí)資料
//
#include#includeint main() {int n1, n2;
int **arr;
printf("請輸入所要創(chuàng)建的動態(tài)數(shù)組的第一維長度:");
scanf("%d", &n1);
printf("請輸入所要創(chuàng)建的動態(tài)數(shù)組的第二維長度:");
scanf("%d", &n2);
if ((arr = (int **) malloc(n1 * sizeof(int *))) == NULL)//使用malloc給第一維分配內(nèi)存
{printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
return -1;
}
for (int i = 0; i< n1; i++) {if ((arr[i] = (int *) malloc(n2 * sizeof(int))) == NULL)//使用malloc給第二維分配內(nèi)存
{printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
return -1;
}
}
for (int i = 0; i< n1; i++) {//通過循環(huán)給數(shù)組賦值并在控制臺進行打印
for (int j = 0; j< n2; j++) {arr[i][j] = i * n2 + j + 1;
printf("%d\t", arr[i][j]);
}
printf("\n");
}
for (int i = 0; i< n1; i++) {free(arr[i]);//釋放第二維
}
free(arr);//釋放第一維
return 0;
}
請輸入所要創(chuàng)建的動態(tài)數(shù)組的第一維長度:5
請輸入所要創(chuàng)建的動態(tài)數(shù)組的第二維長度:4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
代碼中的注釋已經(jīng)寫的很詳細了,如果還有什么疑問歡迎評論區(qū)留言。
如果您覺得本篇文章對您有幫助,請點贊,轉(zhuǎn)發(fā)給更多的人。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站名稱:C語言——動態(tài)數(shù)組的創(chuàng)建和使用-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.rwnh.cn/article8/epjip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、域名注冊、微信小程序、定制開發(fā)、電子商務(wù)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容