1樓:兆初晴謬美
在「結構」一單元中出現的->運算子成為「右箭頭選擇」,在使用中可以用new_node->value
=10;來代替(*new_code).value=10;
也就是說在結構中,運算子->是運算子*和運算子.的結合,在上述語句中,他先對new_node間接定址以定位所指向的結構,然後再選擇結構的成員value。
2樓:鄺弘義有亮
c語言中絕對有「->」和「.」!
這兩個運算子都是用來訪問結構體的。比如有結構體struct
student
;並且有兩個變數
struct
student
zhangsan;
struct
student
*p;p=&zhangsan;
你要留意zhangsan是結構體的名字,p是指向這個結構體的指標。
那麼訪問結構體的兩個變數時就只能用
zhangsan.math=60;
zhangsan.english=70;
p->math=80;
p->english=90;
即結構體的名字用點,相當於「的」,某個結構體的某個分量。
指向結構體的指標就用「->」,相當於指標指向的結構體的分量。(你看那箭頭,就好比指標)
另外,在c語言中還有「位段」的概念,訪問某個bit也用「.」,也可以理解成一種結構體。
3樓:永景將嶽
兩個運算子號的優先順序相同,但是"->"用於指向結構成員,它的左邊應為指向該結構型別的指標(結構指標),而"."的左邊應為該結構型別的變數(結構變數)。舉個例子,這個結構有個結構指標structpoint,有個該結構型別的變數student,其中structpoint指向student,即*structpoint=student,那麼structpoint->name=(*structpoint).
name=student.name
4樓:侍星淵敏駿
唯一的區別是->前面放的是指標,而.前面跟的是結構體變數,如已定義了一個結構體struct
student,裡面有一個int
a;然後有一個結構體變數struct
student
stu及結構體變數指標struct
student
*p;且有p=&stu,那麼p->a和stu.a表示同一個意思
c語言中用於交換值函式問題,C語言中呼叫函式交換兩個變數的值需要傳遞地址,為什麼相加就可以直接用
因為void gsd int a,int b 中的a和b在呼叫時用實參的值進行拷貝,在函式中交換的只是拷貝過來的副本,所以原來的實參值並沒有發生交換操作。而在void gsd int a,int b 中int 型別使a和b的性質發生了變數,它們是 引用變數 呼叫時它們就成了實參的 別名 就是說在函式...
abb區別C語言中的,abi和aib區別C語言中的
a.b i 是 a 變數的陣列成員 b 的第 i 個元素 a i b 是陣列 a 的第 i 個元素的成員 b 這不是很簡單的區別嗎?c語言中 a b a b和 a 一 表達意思不同 1 a b a b 如果a大於b,則取a,否則取b。2 a 二 邏輯順序不同 1 a b a b 記憶體邏輯中先執行大...
c語言的a和a有什麼區別,C語言中a與a的區別是什麼詳細一點,謝謝
如果要列印的值 來是a 如printf d a 那打源印出來的只是a的值bai.但是第二次打du 印的a值就 zhi是 後的值.就是先打dao印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a...