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...