c語言程式ais與,c語言程式 a i s與a i s有區別嗎?

2021-04-12 02:11:31 字數 3535 閱讀 5712

1樓:匿名使用者

a[i]->s 這個a[i]必須是地址才對所以表達是錯誤的,應該&a[i]->s

或者 定義一個指標 p = &a[i]

那麼 a[i].s 和p->s是等價的,沒有區別

2樓:鬥帝之上魂鬥羅

你這個a是一個結構體組成的陣列或者結構體指標組成的陣列吧;

如果是前者,就是用a[i].s,如果是後者,就用a[i]->s;

因為結構體和結構體指標獲取屬性就分別是.和->

3樓:匿名使用者

有區別,型別不同

a[i].s 裡的a[i]是結構體

a[i]->s 裡的a[i]是結構體指標

4樓:匿名使用者

c語言中只有a[i].s沒有a[i]->s

c++中兩者是一致的,沒有區別。

c語言中a->s[i]與a[i].s的區別

5樓:匿名使用者

a->s[i]是a地址上的結構體成抄

員變數s的第i個元素。

寫成非指標的方式,就是a[0].s[i];

這種寫法,要求a和s都必須是指標型別。

a[i].s是a地址上,第i個a中的成員變數s。

這種寫法,要求a必須是指標,而s不一定是指標。

對比a[0].s[i]和a[i].s,可以看出,這兩個是完全不同的意義。

6樓:匿名使用者

a是結構體陣列

的陣列名,a[i]表示陣列中的第i+1個元素,a[i].s表示該結構體中的元內素s,這就是 . 運算子的作

容用而 -> 運算子則是對指標(即地址)操作而言的:符號左邊為指標,右邊為結構體元素

故a[i].s <=> (a+i)->s

7樓:舞亦香滿衣

a[i].s 是屬性的訪問方式

a->s[i]是指標的訪問方式

8樓:匿名使用者

a->s[i]這本來就是錯的!s是int型別,又不是陣列,也不是指標!

在c語言中,s->s>a[i].s的意思是將結構陣列a中的s成員比較。

9樓:匿名使用者

如果*s和 a[i]是同型的,那麼 s->s是一個量,則a[i].s也是一個量,為什麼不能比呢。

c語言 if(s->s>a[i].s) 是什麼意思?

10樓:

第一個s應該是陣列a[i]同一個型別資料的一個指標,這兒是判斷s指向的這個結構裡的成員s是否比a[i]裡的s大,能懂不?

11樓:匿名使用者

例如定義了這樣一個結構陣列;

struct a

a[i];

a *s;

s是指向結構陣列a的某一個值,這實際就是比較結構陣列a裡面的2個元素的s的值的大小。

不知道這樣你能明白了不?

12樓:羌忠擄啪漣玖

c語言你是學計算機了吧,我大一的時候就學過這個,哈哈哈不過現在基本上學過的都已經是還給老師了『』;

c語言指向運算子問題s->s

13樓:黑丶雨

名字一樣,但內容不同;

s->s 的意思是結構s中的變數s.

所以在程式中儘量給變數設定不同的名字,不然頭疼不僅是自己,還有別人.

c語言結構體問題想問一下a【i】.s什麼意思?謝謝! 10

14樓:非常可愛

a是結構體陣列,i是這個陣列的第i個結構體;

a[i]同一個型別資料的一個指標,這兒是判斷s指向的這個結構裡的成員s是否比a[i]裡的s大;

s是指向結構陣列a的某一個值,這實際就是比較結構陣列a裡面的2個元素的s的值的大小。

例:struct a

a[i];

a *s;

擴充套件資料

資料結構分類

1、陣列(array),陣列是一種聚合資料型別,它是將具有相同型別的若干變數有序地組織在一起的集合。

2、棧( stack),棧是一種特殊的線性表,它只能在一個表的一個固定端進行資料結點的插入和刪除操作。

3、佇列和棧類似,也是一種特殊的線性表。和棧不同的是,佇列只允許在表的一端進行插入操作,而在另一端進行刪除操作。

15樓:我不知道啊啊

a是結構體指標,實參是s,s是一個結構體陣列,在函式fun中可用a來訪問s中的元素,a[i]是s的第i個元素,因為每個元素都是一個結構體,所以a[i].s就是訪問第i個元素的s成員~

16樓:朱軍

a是結構體陣列,i是這個陣列的第i個結構體,是a【i】這個結構體中的s成員

17樓:匿名使用者

訪問結果裡面的變數 。

c語言中a表示一個陣列,a[i++]與a[++i]到底有什麼區別?

18樓:l語言之父

a[i++]和a[++i]的區別:

相同點:i都加1,都使i的值變成下一個元素的序號。

異同點:a[i++]中i++是後自增,必須先使用當前元素的值再使用下一個元素的值,a[++i]中++i是前自增,可以直接使用下一個元素的值。

例子:# include

int main ()

;int i = 0;

printf("%d\n",a[i++]);//本輸出的值為1,因為是i++,所以是先使用a[0]的值,再加上1,即先輸出a[0]的值。

i = 0;

printf("%d\n",a[++i]);//本輸出的值為2,因為++i,所以直接使i加1,即輸出a[1]的值。

return 0;}

19樓:匿名使用者

舉個例子給是說吧

int narray[4] = ;

int i = 0;

int a = narray[i++];

i = 0;

int b = narray[++i];

//上面這個例子中,最後 a = 7,b = 4,//i++ 是使用i的值,然後使用完以後再自增1//++i 是先把i自增1,然後再使用i的值//所以a = narray[i++];就相當於a = narray[i]; i = i + 1;

//b = narray[++i]; 就相當於  i = i + 1; b = narray[i];

//這麼說你應該明白了吧

20樓:倒黴熊

a[i++] 相當於 a[i] i=i+1a[++i] 相當於 i=i+1 a[i]也就是說 一個先

使用i的值,然後改變i的值,一個先改變i的值,然後使用i的值。

例如 如果一開始 i=3 則 a[i++] 就是 a[3] 而 a[++i]就是a[4]

c語言程式解析,C語言程式解析

樓主給的東西不是很完整啊,看看是不是你要的結果。void init 遍歷時顯示每個結點的過程 void drawnode tree t,int color t t p c 號優先順序最高,i 1 時 t t 2 2009 1 2 2 s s t c 優先順序最高 以此類推 所以結果如下 11 2 i...

C語言程式題,c語言程式題

int f int x 這裡是函式的宣告,c語言中函式必須先宣告後呼叫,因為在main方法中呼叫了這個函式,函式的定義在main方法下面,所以必須宣告在main方法開頭。int f int x 是一個函式,這函式在main函式之前有宣告的,宣告之後,就可以在main函式中呼叫。int f int x...

c語言有以下程式c語言有以下c程式includestdiohintmain

第一次進switch的bai時候du由於你的case 0 printf another n 後面沒有zhibreak 所以繼續執行了case 1 printf number n 結果就dao列印出來了 another number 第二專次switch的時候關於字元 1 匹配屬 case 1 pri...