float a是什麼意思,float a 5 3 , p 3 p 0 a 0 p 2 a 4 是什麼意思?

2021-08-11 19:13:51 字數 3922 閱讀 6783

1樓:篤俠

*p[3] 為指標陣列,其每乙個元素(p[i])都是乙個指標,可以存放乙個float型元素的位址,

a[5][3] 為二維陣列,c/c++的陣列是構造性的,二維陣列被解釋為「元素為一維陣列」的一維陣列,因此,a[5][3]被視為具有5個元素(a[0],a[1],…,a[4])的一維陣列,每個元素都是乙個一維陣列,a[0],a[1],…,a[4]是5個一維陣列的陣列名,而一維陣列的陣列名表示其首元素位址。所以:

p[0]=a[0];——將一維陣列a[0]的首元素位址(即&a[0][0])賦給指標p[0]

p[2]=a[4];——將一維陣列a[4]的首元素位址(即&a[4][0])賦給指標p[2]

2樓:o默化

你這麼理解一下 a[5][3]可以理解成首位址為a[5]的一位陣列,j\這麼說你能不能理解

3樓:匿名使用者

float a[5][3];//定義5*3的二維陣列float *p[3];//定義3 個指標陣列p[0] = a[4];//把第五行首位址賦值給p[0]這個變數p[2] = a[4];//把第五行首位址賦值給p[2]這個變數

4樓:

float a[5][3],//定義乙個5*3的浮點數陣列*p[3];//定義乙個浮點型的指標陣列,每乙個指標都相當於乙個以為float陣列。。所以這裡也就是用指標的方式生成了乙個3*x(注意兩個3的位置。。x表示每一行長度不定)的二位浮點數陣列;

p[0]=a[0];//a是個二維指標,a[0]是個一維指標指向a的第一行。。p[0]也是個一維指標,現在將a[0]的位址賦給p[0],也就是說p[0]指向了a[5][3]的首行。。可用指標p[0]對這一行處理;

p[2]=a[4];//與上一句道理一樣。。將a[5][3]第5行的位址賦給了p[2],

問一下:float *a 和 *float a 有什麼區別? 為什麼有時是p=&a,有時是p=a,有時是*p=a,後兩者有什麼區別?

5樓:匿名使用者

*a表示a是乙個指標(位址),無論是什麼修飾*a,a都是存了乙個4個byte的位址,區別是,你用了float修飾,表示這個位址指向的是float變數。

&a,表示取a變數的位址,例如int a=1;現在&a表示取a這個變數位址。

*p;表示取位址(指標)p指向的位址儲存的值,例如float a=10;

float *b=&a;//讓b指向a變數的位址*b=20;//改變指向的位址上的值

*p=a和float *p不同

前者裡*是運算子,表示取p指向的位址的值,後者只是表明這是乙個指標

int a[5]={1,2,3},*p=a;則*(p+1)的值是2 求解釋

6樓:匿名使用者

int a[5]=陣列抄在記憶體中申請了五個襲連續的位址,假設是五個方框吧□□□□□,依次存放了1,2,3,0,0;

*p=a;定義了乙個指標,指向a陣列的首位址,也就是第乙個方框,p+1,就是指向第二個方框。*(p+1)就是取p+1個方框內的資料,據上面分析,我們可知它是2.

7樓:匿名使用者

inta[5]=,i//定義

baiduint陣列a->5個連續的int儲存空間zhi首位址dao,按順序內

值為1,2,3,4,5;int*p=a;//定義int指標,並初始化值為a,指向容陣列首位址p+=2;//指標按int型別方式向下偏移2位,指向從a[0]->a[2],值從1->3for(i=0;i==0;i++)//for迴圈i初值為0(迴圈入口),迴圈判斷為i==0(每次迴圈前),i++為迴圈增量(每次迴圈後)cout<<*(p+2);//向cout流輸出*(p+2)的值,預設為std終端,p+2同上,指向a[4],*(p+2)為指向位址值為5。該迴圈一次後中斷

8樓:夏夜風襲

p 的值是 a 的位址,運算子 * 是定址,*(p+1) 就是 a[1] ,即為 2

c語言若有下列說明和語句:int a[4][5], (*p)[5]; p = a; 則對a陣列元素

9樓:匿名使用者

如果定義int (*p)[n];p1=a;p1++後,p指向a[1][0];

則p+j將指向a[0]陣列中的元素a[0][j]。

由於a[0]、a[1]┅a[m-1]等各個行陣列依次連續儲存,則對於a陣列中的任一元素a[i][j],指標的一般形式如下:

p+i*n+j,相應的如果用p來表示,則為*(p+i)+j;

元素a[i][j]相應的指標表示為:

*( p+i*n+j) ,相應的如果用p1來表示,則為*(*(p+i)+j)。

推出以下的等價關係:

a+i == p+i;

a[i] == p[i] == *(a+i) == *(p+i);

a[i][j] == p[i][j] == *(a[i]+j) == *(p[i]+j) == *(*(a+i)+j) == *(*(p+i)+j)。

10樓:鍵盤未找到

a.表示&a[1].

b.a[3]

c.&a[1][3]

d.a[0][2]

11樓:匿名使用者

首先呢,a是二維陣列,不解釋。

然後呢,p是乙個指標,什麼樣的指標呢,就是指向一維陣列的指標,而且這個一維陣列的元素個數呢是5.

然後呢,p=a;就是把p指向a陣列。

分析選項:

a p+1 .因為p是一維陣列指標,所以p每+1就是+1行。錯誤。

b *(p+3)是指第4行的首位址,訪問不到元素。需要再*c *(p+1) + 3 對位址+3 沒啦意義d *(*p+2) *p是第0行首位址 +2 呢就是第二個元素的位址,*取資料咯。

12樓:一方通通

本題中定義了乙個二維陣列c和乙個陣列指標p並初始化讓它指向c,顯然此時p中的各元素為位址,

a中p+1,此時的1代表的長度是整個二維陣列c的長度,p+1將讓p指向c陣列後面的元素,故不能引用c陣列中的成員,故選項a錯誤;同理,選項b和選項c都不正確,

d中p[0]+2代表的是第一行第三個元素的位址,而*(p[0]+2)將代表第一行第三個元素的值。

若有「float a[10],*p;p=a;」,且a[0]的位址值為100,則執行「p=p+2;」後p的值是

13樓:匿名使用者

因為 float大小為4位元組,所以指標指向當前 向後2單位 *4位元組 = 100 + 2*4 = 108

14樓:匿名使用者

各編譯環境 32位 64位不同各基本型別佔的位元組也不同 比如在32位機子 turbo編譯的話 就是100+2*2=104貌似 在vc編譯的話 就是108

若有定義 int a[3][4],b[4][3],(*p)[4]; 下列賦值等式正確的是 答案是 p=&a[1] p=b為什麼錯

15樓:匿名使用者

(*p)[4]的意思是:p是乙個指向具有4個int型別元素陣列的指標。

a[3][4]有3行,每行的元素有4個

b[4][3]有4行,每行的元素有3個

所以 p=&a[1]是對的,讓p指向a的第二行的四個元素,因為a的每行有四個元素,這與p的定義恰恰是匹配的。

#include

16樓:

*p=1,x=3,y=5——這是無錯的輸出,**有錯會過不了編譯。

17樓:化身莊周的鯤

*p=1,x=3,y=5

是什麼意思是什麼意思

代表男女姓的符號。是女性 是男性 代表女性,雌性,母,等含義。代表男性,雄性,公,等含義。箭頭指下是男 反之 是女 男女符號 的來歷有兩種說法。第一種說法 因為愛神丘位元的弓箭袋狀如 女神維納愛美,常持小鏡子形似 人們就用這兩個符號作為愛神和女神的代號,後來它們就被分別用來表示男和女了。植物學家借用...

是什麼意思是什麼意思

它可以表示變化量 屈光度 一元二次方程中的判別式。是西里爾字母的 和拉丁字母的d都是從 delta 變來。delta亦是三角洲的英文,源自三角洲的形狀像三角形,如同大寫的delta。delta 大寫 小寫 是第四個希臘字母。西里爾字母的 和拉丁字母的d都是從 delta 變來。delta亦是三角洲的...

Ltd是什麼意思,微整是什麼意思是什麼意思是什麼意思是什麼意

ltdabbr.有限責任公司 limited 雷射目標指示器 等於laser target designator the student is helping with a sleep survey carried out by luxury bedspecialists simon horn lt...