//C++只有在用{}進(jìn)行初始化的時(shí)候才可以僅僅指定列數(shù)而不指定行數(shù),因?yàn)榭梢酝ㄟ^直接//初始化時(shí)的元素個(gè)數(shù)自動(dòng)計(jì)算出行數(shù) 。而僅聲明/創(chuàng)建數(shù)組而不初始化時(shí),Cpp要求必須寫明//行數(shù)和列數(shù)才能夠創(chuàng)建數(shù)組變量,否則會(huì)報(bào)錯(cuò)說數(shù)組創(chuàng)建這一"函數(shù)"沒有足夠的參數(shù) 。//但Java由于它自己的底層內(nèi)存結(jié)構(gòu)組織方式的原因,二維數(shù)組可以視為是數(shù)組的數(shù)組//第一維數(shù)組所包含的每個(gè)元素都是指向二維元素即數(shù)組的指針,所以必須先說明行數(shù)//指向二維數(shù)組的指針就能夠隨時(shí)待命去連接新的數(shù)組作為一維數(shù)組指針的指向//(而且這時(shí)還只是聲明,并不需要使用數(shù)組元素,Java除了使用{}直接初始化都用new來開辟內(nèi)存創(chuàng)建數(shù)組且初始化為0)//C++局部變量數(shù)組初始化全部為0只能在聲明的時(shí)候進(jìn)行,//:int arr[3] = {0};全局變量則全部直接初始化為0//int arr[n][m];//C++還可以用上include<cstring>里面的函數(shù)memset(arr,0,sizeof arr);//將數(shù)組一次性初始化為0的操作//所以Java必須能夠指明行數(shù)才能聲明多維數(shù)組,在使用前必須將所有維度都說明清楚//兩種語言都是行優(yōu)先的,所以都需要至少指明確定的行數(shù)才能對(duì)數(shù)組進(jìn)行創(chuàng)建和初始化//C++int ddd[][2] = {2,5,5,6};//對(duì)int dd[2][];//報(bào)錯(cuò)int d[][2];//報(bào)錯(cuò)//Javaint [][] arr = new int[3][];//報(bào)錯(cuò)【C++和Java多維數(shù)組聲明和初始化時(shí)的區(qū)別與常見問題】
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- SpringBoot-JavaMailSender接口實(shí)戰(zhàn)
- vscode markdown WYSIWYG 所見即所得編輯和預(yù)覽
- day09-2視圖和用戶權(quán)限
- tcl電視怎么樣 海信和tcl電視哪個(gè)好呢
- 銳炬顯卡和mx330哪個(gè)好_銳炬顯卡和mx330選哪個(gè)
- 小米11pro、三星s21+、蘋果12和三星note20ultra哪個(gè)好-購(gòu)機(jī)建議
- 蘋果13pro和華為mate40pro區(qū)別對(duì)比_哪款更值得入手
- 網(wǎng)簽合同和購(gòu)房合同一樣嗎
- “夜淘寶”正式上線 和淘寶有什么區(qū)別
- 2023靈活就業(yè)人員社保繳納的比例 公司和個(gè)人分別是多少?
