1樓:孤舟釣客
#include
int **yunyundata=null;
int testone()
return 0;
int yunyun()
int i,j;
testone();
for (i=0;i<2;i++)
for (j=0;j<2;j++)
printf("%d,%d,is:%d",i,j,yunyundata[i][j]);
return 0;
int main()
int i,j,k=0;
int yunyun[2][2];
for (i=0;i<2;i++)
for (j=0;j<2;j++)
k=i*3;
yunyun[i][j]=k+j;
yunyundata=(int **yunyun;
return 0;
問題:/1.沒有主函式,故會出 unresolved external symbol _main錯誤。
只宣告沒定義也會出link錯誤。
3.函式yunyun沒被呼叫,起不到測試作用。
記著測試乙個函式正確與否要寫個主函式。c程式是必須有主函式的,這是整個程式的入口。
2樓:網友
在yunyundata=(int **yunyun;前應先分配** yunyundata的空間--即將二維指標定義為二維資料,包括上下界,就可了。
3樓:網友
沒有主函式,把int yunyun()改成int main()試試。
關於多維陣列的指標的疑問
4樓:翠霽竭依心
這就是說二維陣列的行位址與列位址的問題。
對於二維陣列有行位址與列位址與具體元素,行位址--列位址---具體元素,他們的級別依次遞減,a[3][3],如果要宣告乙個指標指向陣列a,應該是。
int*p,或者是(*p)[3],第乙個是宣告乙個二級指標因為2維陣列的陣列名是乙個2級指標,第二個是宣告乙個指向乙個具有3個元素的一位陣列,他們都可以這樣。
p=a。對2維陣列a是行位址,取*就變成了列位址面對列位址取*就成為具體元素。所以取*是降級運算。
你第乙個問題,因為p是二級指標,對p取*就變為一級指標,他們無法賦值,等號左右必須是同一級別,知道了吧。
第二個問題,對於行位址取*或者取下標[
就使行位址變為列位址,列位址取內容&就變為行位址,但是比注意取*
下標。之後這個值對於2維陣列還有意義沒有。。
應該幫得到你。。。
請教c++二維陣列和指標的簡單問題。
5樓:網友
1.設有int a[3][2] =, (p)[2]=a1;則*(*p+2)+1)的值是__1__。
答案6問題:有人說,p是含有兩個元素的一維陣列,怎麼是含有兩個元素呢?
然後請解釋一下(*p)[2]=a1,*(p+2)+1和求解過程。
int a[3][2] =,嚴格表示應該為:
int a[3][2] =, //a[0]
/a[1]a[2], 三組數,每組兩個。
int (*p)[2]=a1的正確寫法為:int (*p)[2]=a[0] ;p是指標,其所指向的位址中的資料型別為「兩個int」,即p指向的位址中的資料可以看成是 「乙個含有兩個元素的陣列" 。這樣描述,你應該可以看的懂。
p+0 --a[0]
p+1 --a[1]
p+2---a[2]
p+2) 指向a[2][0]的位址。
p+2)+1指向a[2][1]的位址。
*(p+2)+1)就是a[2][1]的值 = 6
2,.有二維字元陣列char s[4][6]=,執行程式cout<<*s[2],螢幕上顯示 (
a gao b tang c g d t 答案b
問題:*s[2]是什麼呢? 怎麼求出來是s[0][2]的值呢??
s[0]指向"zhang"
s[1]指向"gao"
s[2]指向"tang"
s[3]指向"wang"
s[2]就是指s[2]的第乙個數值 t,所以答案應該是d
首先要先搞明白指標是什麼。
然後要搞明白陣列名是什麼。
再搞清楚陣列與指標的關係。
然後再去研究多維陣列的概念。
再去研究多維陣列與指標的關係。
最後再研究陣列指標的概念。
6樓:網友
第乙個不完整吧。
2,你可以看一下二維陣列的初始化,s[i](i=0,1,2,3)都是char*型別的指標。
c語言二維陣列和指標的問題
7樓:網友
兩位的問答快給我看暈了。。不看書好多年了,不知道自己說的還對不對,供參考。
如上所述,a+1肯定是不等於*(a+1)的,原因如下:
型別都不一致怎麼比(印象中老版本編譯器可以)(a+1)+1是絕不可能等於*(a+1)+1的。
要說等於的話是這樣等於(int)(a+1)==(int)*(a+1)或者這樣(int*)(a+1)==(int*)*a+1)這樣(int**)a+1)==(int**)a+1)
總而言之是它們的位址相等,也就是說a+1和*(a+1)表示的是同乙個位址,都是a[1][0]的位址,相等的必要條件是a[1]的型別必須是指標,同理:a[1]和&a[1]表示的也是同乙個位址(這根本就是定理本身。
關於2維陣列指標的乙個小問題~~
8樓:網友
int a[3][4]
類似於乙個int **指向指標的指標。
a+2 是乙個int**指標 他指向型別是int* 他是指向a[2] 它的首位址是a[2][0] 如你在(a+2)+1 這個彎碼將移動4*sizeof(int) 就是指向a[3]這個數則譽組(其中包括有a[3][0]--a[3][4])
a+2)也是乙個指標,是int *指標 他指向的型別是埋盯哪int 就是指向a[2][0] 如果你*(a+2)+1 這個是隻指向乙個int 就是a[2][1] 如果你想取a[2][0] 應該是**(a+2) 取a[2][1]就是 *(a+2)+1)
c 中二維陣列的指標如何定義?
二維陣列的指標就是指標的指標,比如一個int型二維陣列 int array 2 3 指向它的指標就可以定義成 int p 如何使用這個指標呢,就和使用普通二維陣列一樣,比如第一行第二個元素 p 0 1 int a 2 2 a 就是 a 0 0 第一行第一列。a 1 就是 a 0 1 第一行第二列。a...
二級C語言關於指標與二維陣列謝謝
a p是一個指向char型別的指標,如果指向陣列,則陣列也應該是一維陣列才可,這裡s是二維陣列,不可 b k是一個陣列指標,它指向一個陣列,但是這個陣列要求有三個char型別的資料,跟p不匹配,不可 c s 0 表示s這個二維陣列的第一行,也就是,它屬於一維陣列,跟p匹配,可 d 將一個二維陣列賦值...
php中如何合併幾個二維陣列成為二維陣列
宇宙大師之一 php 中的 array merge recursive 函式可以實現 將一個或多個陣列的元素的合併起來,一個陣列中的值附加在前一個陣列的後面。並返回作為結果的陣列。當有重複的鍵名時,值不會被覆蓋,而是將多個相同鍵名的值遞迴組成一個陣列。array merge recursive ar...