1樓:
不是儲存到記憶體中 就是對陣列dham[3][32768]進行初始化 相當於int a[5]=
前面的const是說你在用到陣列的值時不能改變他的值 如果沒有const就可以改變 比如我定義的a[5]就可以改變它的元素的值 不如:
你可以改變a[0]=100 但是dham[3][32768]中的值你就不可以改變 要不然編譯器會報錯
而且有字首const的陣列必須對其進行初始化unsigned int 是資料型別
2樓:
。。。0x表示十六進製制,比如說0x1f=1*16^1+15*16^0=31,十六進製制大於9的數用a,b,c,d,e,f來表示,分別代表10,11,12,13,14,15。程式在執行時會在記憶體中儲存這個陣列,然後就可以使用。
3樓:知常軒
查過三角函式表、對數表嗎?
這裡的**因該是在做一張常數表。就跟你查的紙質的表一樣。只不過這裡把資料寫在記憶體裡而已。至於這錶是什麼,恕我眼拙。
常見的,做一條正弦表,或特殊曲線表,目的是降低計算量,提高(有時是必須的)效率
c++怎麼定義乙個動態二維陣列
4樓:天方夜譚的哆啦a夢
#include
#include
#include
#definerank10
#definecolumn7
intmain()
inti,j;
int(*p)[column];
//動態生成二維陣列,指定列數為column,如果想改,可以進行修改
//的引數,如果想定義n行2列就為:p=(int(*)[2])malloc(n*2*sizeof(int));
p=(int(*)[column])malloc(rank*column*sizeof(int));//動態申請n行column列的二維陣列
for(i=0;ifor(j=0;jp[i][j]=i*j;
for(i=0;ifor(j=0;jprintf("%d,",p[i][j]);
printf("\n");
free(p);
system("pause");
return0;
擴充套件資料
定義乙個三維陣列:
intx[3][4][5];
定義了乙個三維陣列,陣列的名字是x,陣列的長度為3,每個陣列的元素又是乙個二維陣列,這個二維陣列的長度是4。
並且這個二維陣列中的每個元素又是乙個一維陣列,這個一維陣列的長度是5,元素型別是int。多維陣列在實際的工作中使用不多,並且使用方法與二維陣列相似。
5樓:go陌小潔
用new申請空間;
再在對每個數進行初始化;
//動態定義和初始化二維陣列 部分**
cout<<"輸入二維陣列的行,列 :";
cin>>row >>col ;
int **p2 ;
p2 = new int*[row] ;
for( i = 0 ; i < row ; i ++ )p2[i] = new int[col] ;
//輸入二維陣列的值
for( i = 0 ; i < row ; i ++ )for( j = 0 ; j < col ; j ++ )p2[i][j] = rand() % 10 ;
//輸出二維陣列
cout<<"輸出二位陣列:"< for( i = 0 ; i < row ; i ++ )//釋放二維陣列 for( i = 0 ; i < row ; i ++ )delete p2[i] ; delete p2 ; 6樓:匿名使用者 #include typedef vector> matrix; 這樣matrix就是二維陣列了,可以用push_back()動態往裡面新增元素 ,不用預先定義陣列大小 7樓: int row, col; cin >> row >> col; int** ptr = new int* [row]; for(int i=0; i for(int j=0; j 8樓:倒霉熊 int x,y,**p; cin>>x>>y; p=new int*[x]; for(int i=0;i p[i]=new int[x]; 9樓:不宜然 int **parray; parray = new int8[5]; for (int i=0 i<5; ++i)for (int i=0; i<5; ++i)delete parray; c++中怎麼用new函式定義乙個二維陣列? 10樓:問明 假設a,b為兩個int型變數,如果希望這樣生成乙個二維陣列:new int[a],是不會得到編譯器允許的——因為沒有指定這個陣列的元素型別。 由於b的大小未知,編譯器無法確定『int』到底是乙個什麼型別。所以,要用new建立乙個二維陣列。 方法一:使用常量 接上:如果將b指定為乙個常量,例如new int[a][5],其實質與new int[a]建立乙個動態陣列並無多大區別——只是元素型別由int變為了'int[5]'而已。 示例**: void testfunc_(unsigned int n) unsigned int i,j; //元素型別為『int[5]』的陣列,可賦值給『int[5]』型別的指標. int(*array2d)[5]=new int[n][5]; for(i=0;ifor(j=0;j<5;++j) array2d[j]=i*5+j; //**方法和普通動態陣列相同,使用'delete'即可 deletearray2d; 用這個方法來建立二維陣列,比較直觀、易用,但它最大的限制在於:你必須在編譯時確定b的大小。 方法二:使用指標間接引用 首先建立若干個大小一致的動態陣列,然後將這些陣列的首位址(轉化為指標)按順序儲存到乙個動態陣列中,就相當於模擬了乙個二維動態陣列。 示例**: void testfunc_pointer(unsigned int height,unsigned int width) unsigned int i,j; //陣列的元素型別為『int*』,可賦值給指向『int*』的指標. int**array2d=new int*[height]; for(i=0;iarray2d=new int[width]; //訪問. for(i=0;ifor(j=0;j//記憶體非連續,注意防止越界. array2d[j]=i*width+j; //首先**低一級的動態陣列. for(i=0;ideletearray2d; //然後**高一級的動態陣列. deletearray2d; 方法三:使用vector 借助stl中的vector,我們可以很直觀的建立乙個二維陣列,而不需要用到基本陣列的概念。 示例**: void testfunc_vector(unsigned int height,unsigned int width) typedef std::vectorintvector; typedef std::vectorintvector2d; unsigned int i,j; intvector2d*parray2d=new intvector2d; //動態設定大小. parray2d->resize(height); for(i=0;i(*parray2d).resize(width); for(i=0;ifor(j=0;j(*parray2d)[j]=i*width+j; delete parray2d; 11樓:風若遠去何人留 需要先申請乙個m個元素的一維指標空間,然後對每個一維指標上,申請n個元素的物件空間。這樣就可以申請乙個m行n列的二維陣列空間了。 以整型為例 const int m = 10, n = 5;//10行5列。 int ** a; a = new int *[m]; for(int i = 0; i < m; i ++)a[i] = new int[n]; 所得到的a就是10行5列的陣列。 使用後需要釋放,**為 for(int i = 0; i < m; i ++)delete a[i]; delete a; 12樓:雲淡風輕in蘇州 #include void main() int i; //先開第一維空間 p = new int*[m]; for(i = 0; i < m; ++i) } c++中如何宣告乙個二維陣列 13樓:匿名使用者 1、一維陣列: 型別說明符 陣列名[常量表示式]例如 int a[10]它表示陣列名為a,此陣列有10個元素 2、二維陣列: 陣列名[下標][下標]例如 a[2][3] 下標可以是整形表示式如a[2-1][2*2-1]不能寫成a[2,3] a[2-1,2*2-1] 14樓: int a[m][n]; 這代表了乙個m行n列的二位陣列。 或者是int **p; 用指標定義乙個二位陣列。 還有int (*p)[n]; 這定義了乙個未知行n列的二位陣列。 希望能幫到你。 祝好運。 15樓:相思丶貓 簡單啊,比如 int a[5][3]; 5行3列的int陣列 16樓: 陣列型別 陣列名 [行數][列數]; int a [3] [5] ;同上 c++如何定義乙個兩個下標數都是變數的二維陣列? 17樓:匿名使用者 用動態陣列可以借用指標的辦法先附上執行截圖:附上程式:#include using namespace std;int main(void)cout << endl; }for (int i = 0; i != n; ++i)delete p[i]; delete p; system("pause>nul"); return 0;} 18樓:匿名使用者 直接宣告就好了,這就是矩陣嘛。 int a[n][n]; 不過要初始化n,然後可以通過宣告下標變數進行陣列的賦值和呼叫 如何在c++中定義乙個可以自定義行數和列數的二維陣列 19樓:莊政警 動態二維陣列一般用堆指標來實現,給你個例子,為測試方便用隨機數填充並輸出: #include #include #include #include using namespace std; int main() int r, c, i, j; cout << "輸入矩陣的行數:"; cin >> r; cout << "輸入矩陣列數 : " ; cin >> c; int **m = new int*[r]; for (i = 0; i < r; ++i)m[i] = new int[c]; cout << "隨機數填充的矩陣為:" << endl; srand(time(0)); for (i = 0; i < r; ++i)for (j = 0; j < c; ++j)m[i][j] = rand() % 100; //cin>>m[i][j]; //人工輸入輸入for (i = 0; i < r; ++i)for (j = 0; j < c; ++j)cout << m[i][j] << ' '; cout << endl; for (i = 0; i < r; ++i)delete m[i]; delete m; return 0;執行: 要回答你的這個問題,不妨先根據你的問題先編寫一段小的示例程式 include include using namespace std int a 3 4 int main 這段示例程式在我本地上執行的結果為 a i 0 4214816 a i 4214816 a i 4214816 a i 0 42... 假設a是乙個二維陣列,則一 a是第乙個一維陣列名,陣列名 就是該陣列的 首位址!二 a 0 和 a都表示這個一維陣列第乙個元素的內容 這句話有問題,應該是 都表示這個 二維陣列 第乙個元素的內容!三 a和a好像不等價啊?關於陣列名和 陣列名書上有明確的介紹與說明 a a a 0 a 0 這是規定!細... 其實pa是乙個指向 包含 復3個元製素的 一維陣列的指標,因此可以指向任何乙個包含3個元素的一維陣列 而a 2 3 是二維陣列,可以看作是由a 0 和a 1 兩個包含三個元素的一維陣列組成,如a 0 就可以認為是包含a 0 0 a 0 1 a 0 2 三個元素的一維陣列a 0 這樣就可以理解pa a...c語言 二維陣列指標中的和,C語言 二維陣列指標中的 和
C語言指標與二維陣列求解,c語言中二維陣列的指標如何表示
C語言,有如下定義intaa不是定義二維陣列a麼,又定