c++二維陣列指標輸出,搞不懂,急!!
1樓:匿名使用者
輸出的是's'
你定義的是乙個四行四列的陣列。 因為在c++中陣列的行和列都是從0開始的, 所以行的標號是0, 1, 2, 3, 一共四行, 列也是一樣。
str[2][2]輸出的是行列標號均為2的元素, 由以上說明可知, 它實際輸出的是第三行第三列的元素。 根據你陣列的定義, 它輸出的是's'
str[4][4]
標號 實際行數 元素。
0 1 'w' 'e' 'l' '\0'
1 2 'c' 'o' 'm' '\0'
2 3 'e' ' ' 's' '\0'
3 4 'o' 'n' '\0'
標號 0 1 2 3
實際列數 1 2 3 4
標號[2, 2]對應的是's'
只要記住陣列排序是從0開始就行了。
2樓:部鱗水妙美
輸出schar str[4][4] = ;
為定義4行4列的陣列空間。
定義和引用是不同的,引用是以0下標為開始而定義為下標的真正數。
如int a[2];是定義2個空間,a[0]代表第乙個空間 a[1]為第二個空間。
3樓:網友
輸出 s記住是從0開始計數 4個一組。
w', 'e', 'l', '\0',c', 'o', 'm', '\0'
e', ' ', 's', '\0',o', 'n', '\0',『\0』(不足補空)
取第三行 的第3個就是了。
4樓:網友
輸出s,初始化時是按行賦值的,也就是第一行賦值完到第二行到後面的,這個cout語句是輸出第三行的第三列位置的字元是's
5樓:懶人說西方人物
輸出s , char str[4][4] 是4*4的矩陣,2*2表示第三行第三個位置的字元。 就是s 嘍。
c語言問題,用指標為乙個二維陣列賦值
6樓:fzy範忠雲
ptr=arr;
其實你這樣賦值也是可以的,是沒有問題的。
因為arr是二維陣列的陣列名,它636f707962616964757a686964616f31333264626539(arr)本身就代表這個二維陣列的第0行的位址。
問題關鍵不是出現在這裡,而是在你程式的while迴圈語句中i++;
你這樣寫是不對的,首先ptr指向的是乙個位址,所以ptr+i也是乙個位址,所以這裡就不能用變址運算子"&"了。第二個問題是,i 從0自加到6,這裡面其實有了7個數,明顯超過了arr陣列的長度,這樣是不對的。這個迴圈還有乙個問題就是,這本身就是乙個不正常的迴圈(自己想想為什麼)
下面是我幫你改改的**,希望對你會有幫助。
#include
void main()
7樓:網友
i++;這個我不太明白,我也是新手,我也遇到過這種情況,我是這樣做內的:
#include
void main()
希望對你有點容幫助。
8樓:網友
可以強行轉抄。
換,ptr=(double *)arr,不過你這個程式還有個地方有問題:
改成 while(i!=6 &&scanf("%lf", ptr+i))
9樓:樹袋熊劉
for( i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("l%f",a[i][j]);
我也是新手,不知道這樣做對不對。
c++中怎麼通過指向二維陣列的指標給二維陣列賦值
10樓:老馮文庫
一、二維陣列與二級指標。
二維陣列。二維陣列本質上是以陣列作為陣列元素的陣列,即「陣列的陣列」。二維陣列的相當於由若干個一維陣列組成的一級陣列。
int a[3][4];
此時的a是乙個二維陣列,a[0]、a[1]、a[2]均表示乙個一維陣列,它們三個元素共同組成乙個一維陣列a(元素是一維陣列)。也就是說二維陣列a是由若干個一維陣列元素(a[0]、a[1]、a[2])組成的一維陣列。
int a[3][4]=,,}
無論是一維陣列還是二維陣列,陣列名均表示陣列的首位址。
2. 二級指標。
指向指標的指標稱為二級指標,即二級指標不是指向乙個普通變數,而是指向乙個指標。如int **p,*p並不表示乙個變數的值,而是另乙個指標。
二、二級指標指向二維陣列。
int a[3][4];
此時的a即是乙個二級指標,*a指向二維陣列的首位址(也是a[0]的首位址),*a+1)指向a[1]的首位址,*(a+2)指向a[2]的首位址。*(a+0) +1)表示元素a[0][1],*a+i)+j)表示元素a[i][j]。
三、應用舉例。
#include
void main()
for(int i=0; i<3; i++)
printf("");}
四、執行測試。
c語言如何定義指標指向字元型二維陣列
11樓:網友
使用指標變數訪問二維陣列的任意乙個元素的方法:
1.使用列指標:定義乙個列指標p,讓它指向二維陣列的第0個元素。
int a[3][4];
int *p;
p=&a[0][0];
因為a[0]是第0行的陣列名,所以p=&a[0][0]相當於p=a[0],因為a[i][j]前面共有i*4+j個元素。
該二維陣列的任意i行j列元素可表示為*(p+i*4+j)。
2.使用行指標:定義乙個行指標p,讓它指向二維陣列的第0行int a[3][4];
int (*p)[4];
p=a; //也可以為p=&a[0];
其中* (p+i)+j)表示任意乙個i行j列的元素。
12樓:天雲一號
在c語言中,可以通過如下方式來定義指向字元型二維陣列的指標:char c[4][5]; // 定義乙個版4行5列的字元權型二維陣列。
char (*pc)[5]; // 定義乙個含5個元素的陣列指標pc=c; // 將陣列指標pc指向二維字元陣列c注:char (*pc)[5] 不能寫為 char *pc[5]char (*pc)[5] 表示陣列指標,陣列中每個元素為char型;
char *pc[5] 表示指標陣列,陣列中每個元素為char*,也即每個元素為指標。
13樓:網友
1、定義二維指標bai
陣列與du定義一維指標陣列差不多,zhi
只是矩陣的維度dao增加了一維而回。
已。2、下面通過具答體的例項來說明如何定義乙個二維陣列:
int *p[2][3]; // 定義乙個二維陣列,只是定義,並沒有分配位址空間。
int i,j; // 陣列的行數和列數。
下面的2個for迴圈是用來對二維指標陣列進行初始化的,也即分配位址。如果不進行初始化操作,就會使指標變為野指標(即指向不明)。
for(i=0; i<2; i++)
for(j=0; j<3; j++)
p[i][j] = (int *)malloc(sizeof(int));
p[0][1] = 2; // 對指標陣列中指標所指向的記憶體單元進行賦值操作。
printf("%d", *p[0][1]);// 輸出結果。
14樓:網友
定義字元型二維陣列:char str[3][10];
定義指標型陣列 : char *p[5] = ;
15樓:過來問問你
如定義:int a[3][4];
int *p; p=a[0];此時p就指向0行0列元素。
c語言 二維陣列指標中的和,C語言 二維陣列指標中的 和
要回答你的這個問題,不妨先根據你的問題先編寫一段小的示例程式 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...
C語言指標與二維陣列求解,c語言中二維陣列的指標如何表示
假設a是乙個二維陣列,則一 a是第乙個一維陣列名,陣列名 就是該陣列的 首位址!二 a 0 和 a都表示這個一維陣列第乙個元素的內容 這句話有問題,應該是 都表示這個 二維陣列 第乙個元素的內容!三 a和a好像不等價啊?關於陣列名和 陣列名書上有明確的介紹與說明 a a a 0 a 0 這是規定!細...
C定義二維陣列,C 定義乙個二維陣列
不是儲存到記憶體中 就是對陣列dham 3 32768 進行初始化 相當於int a 5 前面的const是說你在用到陣列的值時不能改變他的值 如果沒有const就可以改變 比如我定義的a 5 就可以改變它的元素的值 不如 你可以改變a 0 100 但是dham 3 32768 中的值你就不可以改變...