1樓:happy菠菜
錯的, p是指向陣列的指標,估計可以叫行指標。 但是p是指標,在pc上指標是4個位元組,所以p佔一個儲存單元是百分百錯的。
急求c語言,如果不定義行指標(*p)[4],就只能一行一行輸出嗎?
2樓:飄零的狐狸
這樣行不行?
源** 可追問 請採納
#include "stdafx.h"
#include
void search(int i,int *p)}int main(int argc, char* argv);int *p;
p=(int *)a;
search(1,p);
return 0;}
3樓:匿名使用者
//不考慮越界的話
#define c 4
void search(int i, int *p)int a[3][4]=;
則這樣呼叫:
int *p=&a[0][0];
search(0,p);
search(1,p);
search(2,p);
c語言行指標和列指標 10
4樓:劉文正粉絲
&在任何時候
抄都不能定址, 它是用bai來取地址的.
p[i]在任du何時候zhi
都等價dao於*(p+i)
p[i][j] (其中p是int*[x]型別的)在任何時候都等價於*(*(i*x)+j)
x是一個變數.
int a[10][20]
這裡x = 20
int a[20][10]
這裡x = 10
c語言沒有什麼行指標, 列指標.
一維陣列就是一級指標,
二維陣列是特殊的二級指標,
以此類推......
c語言行指標
5樓:黃邦勇帥哥哥
錯解了。p沒有指向a[0][0],因為使用*p不能輸出a[0][0]的值,*p才是指向a[0][0]的,因為**p就是a[0][0]的值,而且*p輸出的是&a[0][0]的地址。p是指向的a[0]也就是說p=&a[0]=a+0;的,也就是指向的二維陣列的第一行。
p++ = &a[1]=a+1; 也就是指向二維陣列中的第二行。
總之,要記住的是a[1]才是指向的二維陣列中第2行第1個元素的地址。
而&a[1]表示的就是二維陣列中第二行的行地址。
同樣,因為a=a+0,表示的是二維陣列中第一行的行地址。因此a+1就是表示的是二維陣列中第二行的行地址。
還要記住:[ ]這個運算子的的運演算法則是,把左側的地址加上[ ]內的偏移量然後再求指標運算,注意有[ ]運算子的地方就有個隱含的指標,比如x[2]表示的就是將指標x偏移2個單位量後再求指標運算。也就說x[2]與*(x+2)是相等的。
6樓:匿名使用者
二維陣列也是用一維來儲存的,第一行先存接著是第二行,
p++時要考慮p的型別,因為int(*p)[4]是個指向陣列的指標,所以p++相當於跳過了4個元素,指向下一行的第一個元素a[1][0];
你可以寫個程式p++以後輸出就能看出來了。
7樓:匿名使用者
p++指向a[1][0].因為p為行指標。
如果int *p=a,那麼p++,指向a[0][1]
c語言中二維陣列的與行指標 20
c語言程式設計求找錯:求二維陣列每行元素的平均值。要求用函式和指標實現)
8樓:匿名使用者
直接用a[i][j]最簡單,注意s必須每次置零。
非要用指標的話,應該用一個指向陣列的指標,而不是一個裝了指標的陣列;
/*求二維陣列每行元素的平均值。(要求用函式和指標實現)*/#include
void fun(int a[3][4])}int main()
9樓:匿名使用者
已改,看註釋
void fun(int a[3][4])
}int main()
c語言,指向二維陣列的指標變數 100
10樓:兆嵐經新榮
int(*p)[4]這個就能當做二維陣列的指標,第二維的長度得是4。
傳遞一維陣列的時候,用的就是指向元素的指標,而不是指向陣列的指標inta[10];
void
f(int
*p);
f(a);
intb[10][10];
void
f2(int
(*p)[10]);
f2(b);
c語言定義一個形參為二維陣列行指標的函式,實現將所指向的陣列所有元素乘以5的功能。
11樓:匿名使用者
/*處理前:
0 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
處理後:
0 5 10 15 20 25
20 25 30 35 40 45
40 45 50 55 60 65
60 65 70 75 80 85
press any key to continue*/#include
#include
#define rows 4
#define columns 6
void fun(int **a,int m,int n)void show(int **a,int m,int n)}int main()
12樓:老粽子吉吉
int *a[size1][size2]
int i,j;
for(i=0;i c語言中,行指標指向**,為什麼(*p)[]方框裡是二維陣列的列不是行,他不是行指標嗎 13樓: (*p)[x]只是說p是指向一個具有x列的一維陣列的指標,指標的型別(就是這個一維陣列的元素的型別)有待你宣告,x的大小也要你寫明確,否則p就不可用;p確實是行指標,是指向一行一維陣列的,但一個一維陣列的長度不是用列數來表示的嗎?至於p指向了哪一行,那要由**給它賦值了才能知道。比如有int a[3][4],(*p)[4],p=a;,那麼這時p就指向了第一行(第一下標為0的那一行),p+1就指向了第二行(第一下標為1),p+2就指向了第三行(第一下標為2)。 若沒有賦值(沒有寫p=a),那麼p就只是一個能指向列數為4的(即陣列長度為4)int型陣列的指標,它這時還是野指標,沒有具體指向! 答案該是5 我看錯了 2行3列 2 3 4 5 6 7 x 0 就表示 第0行第0列的數 x 1 表示 第1行第0列的數 在c語言中,表示式5 3 2 8 4 0的值為多少?正常思路 由於邏輯運算子優先順序別低於 比較運算子同時這兩種都低於算術運算子,因此先考慮後半部分,4 0真值為1,而8 1的真... 在main中,定義了陣列a 下標 0 1 2 3 4 5 6 7 8 值 8 2 9 1 3 6 4 7 5 求f a,9 f a,9 max f a,n 1 a n 1 max f a,8 5 由於不知道哪個大,所以需要求f a,8 f a,8 max f a,7 7 f a,7 max f a,... include int main char str 2000 gets str gets str int i 0 while i 2000 bool bb false for int i 0 i n i if bb printf mmm n return 0 先給你改好的 吧,沒做大手術,按你的思路...在C語言中,若有定義 static int x 32,3,4,5,6,7,則表示式x
c語言求大神,求C語言大神
C語言問題,求大神,C語言問題,求大神解答!