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語言你是學計算機了吧,我大一的時候就學過這個,哈哈哈不過現在基本上學過的都已經是還給老師了『』;
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...