結構體中 和 兩種訪問區別

2021-10-19 15:10:27 字數 493 閱讀 3516

定義結構體指標,訪問成員時就用->

定義結構體變數,訪問成員時就用.

例如:

struct a 

;

struct a q; 訪問成員就用:q.a;

struct a *p; 訪問成員就用:p->a;

一般情況下用「.」,只需要宣告乙個結構體。格式是,結構體型別名+結構體名。然後用結構體名加「.」加網域名稱就可以引用域了。因為自動分配了結構體的記憶體。如同 int a;一樣。

而用「->」,則要宣告乙個結構體的指標,還要手動開闢乙個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用「->」正確引用。否則記憶體中只分配了指標的記憶體,沒有分配結構體的記憶體,導致想要的結構體實際上是不存在。這時候用「->」引用自然出錯了,因為沒有結構體,自然沒有結構體的域了。

*此外,(a).b 等價於 a->b。

"."一般情況下讀作"的」。

「->」一般讀作"指向的結構體的"。

c 中 和 兩種訪問方式的區別

class student student x student p x 通過指標形式訪問student類的成員 p a 但是如果對指標進行解引用,就是該類的例項化物件,就可以通過下面方式進行訪問 p.a 如果是直接對類,結構體,聯合體的成員進行訪問 x.a struct student struct...

04 結構體兩種傳參形式

2017年6月30日13 53 15 功能 結構體變數作為實參 include struct stu void add10 struct stu st2 printf no.d nname s nscore 2f,2f,2f n st2.num,st2.name,st2.score 0 st2.sc...

python requests傳兩種引數體

在jmeter請求引數中,我們了解到,在做介面測試時,傳送請求的引數有兩種格式,一種是parameters,一種是json。怎麼區分請看 那在python中,怎麼使用requests傳這兩種格式的引數呢?import requests parameters引數體 data rs requests.r...