請問C語言中s top和s top有什麼區別嗎?

時間 2021-05-29 22:56:31

1樓:FRANK

#include

class

Avoidf()

~A()private

:auto

num;

};int

main

()乙個是用指標訪問,乙個是直接訪問·,但是 *運算子的優先順序大於 . 運算子,所以用指標訪問乙個類的成員時,就有->運算子這個語法糖。

2樓:勝勳

有區別s.a的時候,s是struct

s->a的時候,s必須是struct的指標,也就是struct* s,一般的用法是p->a

3樓:MelodiCly

s.top是訪問s內部的top欄位,s必須是結構體。

s->top等同於(*s).top,這裡的s必須是指向結構體的指標,*s拿到這個結構體,然後再拿top這個字段。顯然s->top比(*s).top好看不少。

4樓:

一句話就能講清楚:s->top 等價於 (*s).top。當 s 是指向結構體的指標時,為了避免加括號太麻煩,才會使用 -> 運算子。

5樓:小廢物

這個一般應用在結構體裡面。「.」是結構體例項訪問內部成員的運算子,「->」是結構體指標訪問其所指向的結構體例項內部成員的運算子。舉個例子。

struct node a, *pa = &a;

這裡宣告了兩個變數,乙個是結構體node例項a,乙個是結構體node指標pa,並把pa初始化為a的位址,即令pa指向a。接下來就可以有兩種方式來訪問a中的成員變數x,第一種是「a.x」,第二種就是「pa->x」。

兩種方法不能混淆。

請問 C 語言中 和 的用法?

記住 有3個用途 1.乘號 Multiply 2 3 就是6 2.宣告指標 Pointer Statement int a 5 int ptr a 就是宣告變數a是5,把a的位址附到指標ptr上 3.解引用 Dereference ptr 單獨拿出來就是找出 ptr指標指向的值,按照第二點的說法就是...

C 語言中 int main 和 void main 有何區別?

DR.JC int main代表你main函式定義為整形,函式最後要加上返回值。void main或者就main代表你是無型別函式,函式最後不能加上返回值。 Eason同學 害,我一開始也一直寫void 為了省事 後來發現到了一些嚴謹的編譯器會直接報錯 貌似c必須要有返回值?反正後來我也return...

C語言中,double 和double 5 有什麼區別?怎麼理解?

暮無井見鈴 double 5 是指向 double 5 型別的指標型別。double 是指向 double 型別的指標型別。區別不是很顯然的嗎?double 5 型別能隱式轉換成 double 型別,但它們不是同一型別。可以考慮一下 short 和 long 這兩種型別是能相互隱式轉換的,但它們顯然...