c語言二維陣列行列指標轉換問題,圖中畫的句子真是理解不了,從行轉換成列我懂,從列轉換成行就不懂了

時間 2021-11-04 23:15:38

1樓:孝稷

它就是說指向第乙個0行0列的元素的指標加上乙個&,就等價於指向二維陣列第0行的的指標,本來是指向元素的,現在指向那行了,

2樓:戚文柏

#include

int main()

; //等價於a陣列裡面有兩個元素:a[0] = "123"; a[1] = "456";

char (*p)[4];

p = a;

printf( "%s\n", p ); //p指向陣列a的第乙個元素,即a[0],輸出123

printf( "%c\n", *(a[0]+1) ); //a[0]指向字串"123", a[0]就是第乙個字元'1'的位址,a[0]+1就是第二個字元'2'的位址,那麼*(a[0]+1)就是字元'2'

p++; //p之前指向陣列a的第乙個元素a[0], p++後,p就指向陣列a的第二個元素a[1]了.

printf( "%s\n", p ); //p指向a[1],即輸出"456"

getchar();

return 0;

}//不懂再問.

二維陣列行列互換,並存到另乙個二維陣列中。

3樓:

具體演算法如下:

#include

int main()

int i, j, a[2][3] = , },b[3][2];

printf("array a:\n");

for (i = 0; i <=1; i++)//處理a陣列中的一行中各元素

for (j = 0; j <= 2; j++)//處理a陣列中的某一列元素

printf("%5d", a[i][j]);

b[j][i] = a[i][j];

printf("\n");

printf("array b:\n");

for (i = 0; i<=2; i++)

for (j = 0; j <=1; j++)

printf("%5d", b[i][j]);

printf("\n");

return 0;

擴充套件資料:

c語言——關於二維陣列的初始化問題:

1、定義二維陣列的方法和一維陣列相似,如:

2、int a[3][3];

3、就是定義了乙個3行3列的二維陣列。

4、但是麼要注意,這個3行3列的二維陣列是邏輯上的概念,能形象的表示出行列關係。而在記憶體中,各元素是連續存放的,不是二維的,是線性的,這點大家一定要清楚。

5、二維陣列的初始化,可以分行給元素賦值,如步驟一的圖。

6、也可以將所有資料寫在乙個花括號內,按照元素在記憶體中的排列順序對各元素賦初值。但是這種方法一旦資料很多,會寫成一大片,容易遺漏,不方便檢查。

7、可以對部分元素賦值,例如:

8、int a[3][3]=,,};

9、也可以只對某幾行賦值,例如:

10、int a[3][3]=,};

11、如果對全部元素都賦初值,則定義陣列時可以對第一維的長度不指定,但第二維的長度不能省去。

12、也可以只對部分元素賦值,而省略第一維的長度,但應該分行賦值。

4樓:問明

#include

int main()

int i, j, a[2][3] = , },b[3][2];

printf("array a:\n");

for (i = 0; i <=1; i++)//處理a陣列中的一行中各元素

for (j = 0; j <= 2; j++)//處理a陣列中的某一列元素

printf("%5d", a[i][j]);

b[j][i] = a[i][j];

printf("\n");

printf("array b:\n");

for (i = 0; i<=2; i++)

for (j = 0; j <=1; j++)

printf("%5d", b[i][j]);

printf("\n");

return 0;

執行結果:

printf用法:

printf()函式的呼叫格式為:printf("《格式化字串》",《參量表》)。

其中格式化字串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟乙個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列引數,其個數必須與格式化字串所說明的輸出引數個數一樣多,各引數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:int a=1234;

printf("a=%d\n",a);

輸出結果為a=1234。

scanf()是c語言中的乙個輸入函式。與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上#include。

int scanf(const char*restrict format,...);

函式scanf()是從標準輸入流stdin(標準輸入裝置,一般指向鍵盤)中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應位址的變數中。

如:scanf("%d%d",&a,&b);

函式返回值為int型,如果a和b都被成功讀入,那麼scanf的返回值就是2。

5樓:倒霉熊

#include

void main()

,,};

int b[4][3],i,j;

for(i=0;i<3;i++)

printf("\n");

}for(i=0;i<4;i++)

printf("\n"); //把這個換行放在這裡}}

c語言,將乙個二維陣列a的行和列的元素互換,存到另乙個二維陣列b中。列如 123 1 4 2 5 456 3 6

6樓:匿名使用者

看來你bai是個超級小菜鳥

du啊,解析注上了,慢慢學zhi習吧

main()

,};int b[3][2],i,j;

printf("array a:\n"); //雙引號裡的是字dao符串提示資訊,作用回是在螢幕上顯答

示提示for(i=0;i<=1;i++) //外迴圈i遍歷a陣列的i行

printf("\n");

}printf("array b:\n"); //這個也是for(i=0;i<=2;i++)

7樓:小八

array a array b是表示數抄組a 陣列b第乙個for迴圈是將a陣列裡的資料倒置後放入b陣列 就是這句 b[j][i]=a[i][j]

i表示行下標 j表示列下標 (你吧二維陣列的圖畫出來就懂了)第二個for迴圈是將b陣列列印出來

c語言中二維陣列行指標是什麼

8樓:

就是指向每一行的指標,比如說二維陣列a[2][3];

a[0]代表的是二維陣列第零行的首位址相當於&a[0][0];

a[1]代表的是二維陣列第一行的首位址相當於&a[1][0];

a[0]+1代表的是二維陣列第零行,第一列的位址相當於&a[0][1]

9樓:匿名使用者

行指標其實就是二級指標,也就是說它指向乙個一維陣列,int a[2][3];

a[0] a[1] 就是行指標

這麼看就明白了

int a[3]=

而a[0] a[1]本身又是乙個陣列

10樓:天才繡

就是指行的指標,比如指標一開始指第一行,加一就指第二行

c語言 將乙個二維陣列行和列的元素互換,存到另乙個二維陣列。

求助 C語言二維陣列指標問題,c語言二維陣列用指標表示的問題

1.對於int p a p型別和a是不同的。p是指向乙個指標 指向int型別的量 的指標,a則是指向乙個一維陣列 含2個int元素 的指標。想要建立相同型別的指標應該用int p 2 才行 3.感覺p跟a就同級吧但型別不同 所以其實int p a 兩側的指標的型別是不相同的,只是a的值賦給p而已 假...

關於C語言二維陣列指標問題

如果是前者的話,每行應該輸出乙個元素才對,如果是後者的話又應該只能輸出每一行的首元素才對呀?正如樓上2位仁兄所言,p 指的是前者 下乙個元素的位址 樓主的疑問似乎是認為,該程式段 每行應該輸出乙個元素才對 這是不對的,語句printf 3d p 是每輪迴圈都要執行的,即按每個數字佔3個int大小列印...

C語言二維陣列程式設計題,C語言二維陣列程式設計題

第一道 include stdio.h define n 4 int main int f1 1,f2 1 for int i 0 i n i int result f1 f2 printf d n result return 0 第二道 include define n 10 int main e...