1樓:匿名使用者
這個 & 是 取的 data->value_mutex 的 位址, 即 data 中的 value_mutex 的位址,
因為 c 語言中 -> 比 & 優先順序高.
2樓:
你哪只眼睛 看見data指向nmma7660_client 型別結構體變數了?
struct nmma7660_data *data; 這只是定義了乙個 指向結構體變數的指標 但是還沒讓他具體指向那個變數 他是個野指標
你貼的**不全 肯定能找到類似
struct nmma7660_data ***;
struct nmma7660_data *data;
data = &***;
data->nmma7660_client = client;// 相當於 ***.nmma7660_client = client;
另外mutex_init(&data->value_mutex); //不是 &data指向value_mutex
而是 data指向***導致可以用data訪問 ***的成員value_mutex, 然後再得到這個成員的位址
3樓:匿名使用者
上面那個直接用data指向nmma7660_client,
另乙個也是用data指向value_mutex,前面加&是取的value_mutex的位址
c語言,指向結構體成員運算子是什麼意思?
4樓:匿名使用者
結構體主要成員運算子有"."和" ->"
多用於修改結構成員的值。
以下是具體的例子
struct date;
int main(int argc, char* argv)
c語言結構體struct怎麼使用?
5樓:風翼殘念
在c語言中,可以使用結構體(struct)來存放一組不同型別的資料。結構體的定義形式為:
struct 結構體名;
結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員(member)。
結構體定義:
第一種:只有結構體定義
struct stuff;
第二種:附加該結構體型別的「結構體變數」的初始化的結構體定義
//直接帶變數名huqinwei
struct stuffhuqinwei;
也許初期看不習慣容易困惑,其實這就相當於:
struct stuff;
struct stuff huqinwei;
第三種:如果該結構體只用乙個變數huqinwei,而不再需要用struct stuff yourname;去定義第二個變數。
那麼,附加變數初始化的結構體定義還可進一步簡化出第三種:
structhuqinwei;
把結構體名稱去掉,這樣更簡潔,不過也不能定義其他同結構體變數了——至少我現在沒掌握這種方法。
結構體變數及其內部成員變數的定義及訪問。
要分清結構體變數和結構體內部成員變數的概念。
就像剛才的第二種提到的,結構體變數的宣告可以用:
struct stuff yourname;
其成員變數的定義可以隨宣告進行: struct stuff huqinwei = ;
也可以考慮結構體之間的賦值:
struct stuff faker = huqinwei;
//或 struct stuff faker2;
// faker2 = faker;
列印,可見結構體的每乙個成員變數一模一樣
如果不使用上邊兩種方法,那麼成員陣列的操作會稍微麻煩(用for迴圈可能好點)
huqinwei.job[0] = 'm';
huqinwei.job[1] = 'a';
huqinwei.age = 27;
huqinwei.height = 185;
結構體成員變數的訪問除了可以借助符號".",還可以用"->"訪問。
6樓:愛你的瘋子
在turbo c中,結構也是一種資料型別, 可以使用結構變數,因此,像其它型別的變數一樣,在使用結構變數時要先對其定義。
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
指向結構體的指標是乙個一直都沒有掌握好的點,希望這裡能記錄好一點,加強理解。
對於指標有幾個好處,
第一:就像指向陣列的指標比陣列本身更容易操作一樣,指向結構的指標通常也更容易操作;
第二:在早期的c中引數傳遞只能使用結構的指標;
7樓:
結構是由基本資料型別構成的、並用乙個識別符號來命名的各種變數的組合。 結構中可以使用不同的資料型別。
結構說明和結構變數定義:
在turbo c中, 結構也是一種資料型別, 可以使用結構變數, 因此, 象其它 型別的變數一樣, 在使用結構變數時要先對其定義。
定義結構變數的一般格式為:
struct 結構名
結構變數;
結構名是結構的識別符號不是變數名。 型別為第二節中所講述的五種資料型別(整型、浮點型、字元型、指標型和 無值型)。 構成結構的每乙個型別變數稱為結構成員, 它象陣列的元素一樣, 但陣列中元素是以下標來訪問的, 而結構是按變數名字來訪問成員的。
在c語言中,結構體(struct)指的是一種資料結構,是c語言中聚合資料型別(aggregate data type)的一類。結構體可以被宣告為變數、指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的型別,成員一般用名字訪問。
8樓:匿名使用者
left和right是結構體指標,指向另乙個結構體的位址。
balance、number、value是資料儲存的部分。
這種結構體可以用在雙向連結串列、二叉樹等結構。
9樓:匿名使用者
left, right ,是指向結構體的指標,這個結構體可以當做雙向連結串列來用。left指向指向連結串列的前驅,right指向後繼。
tshort balance;
tshort number; /* 外部可用來儲存16位值 */
tuint value; /* 外部可用來儲存32位值 */
這3個就是連結串列儲存成員。
10樓:匿名使用者
結構(struct)
結構是由基本資料型別構成的、並用乙個識別符號來命名的各種變數的組合。
結構中可以使用不同的資料型別。
1. 結構說明和結構變數定義
在turbo c中, 結構也是一種資料型別, 可以使用結構變數, 因此, 象其它
型別的變數一樣, 在使用結構變數時要先對其定義。
定義結構變數的一般格式為:
struct 結構名
結構變數;
結構名是結構的識別符號不是變數名。
型別為第二節中所講述的五種資料型別(整型、浮點型、字元型、指標型和
無值型)。
構成結構的每乙個型別變數稱為結構成員, 它象陣列的元素一樣, 但陣列中
元素是以下標來訪問的, 而結構是按變數名字來訪問成員的。
下面舉乙個例子來說明怎樣定義結構變數。
struct string
person;
這個例子定義了乙個結構名為string的結構變數person, 如果省略變數名
person, 則變成對結構的說明。用已說明的結構名也可定義結構變數。這樣定義
時上例變成:
struct string
; struct string person;
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便, 它先作
結構說明, 再用結構名來定義變數。
例如:struct string tianyr, liuqi, ...;
如果省略結構名, 則稱之為無名結構, 這種情況常常出現在函式內部, 用這
種結構時前面的例子變成:
struct
tianyr, liuqi;
2. 結構變數的使用
結構是乙個新的資料型別, 因此結構變數也可以象其它型別的變數一樣賦值、
運算, 不同的是結構變數以成員作為基本變數。
結構成員的表示方式為:
結構變數.成員名
如果將"結構變數.成員名"看成乙個整體, 則這個整體的資料型別與結構中
該成員的資料型別相同, 這樣就可象前面所講的變數那樣使用。
下面這個例子定義了乙個結構變數, 其中每個成員都從鍵盤接收資料, 然後
對結構中的浮點數求和, 並顯示運算結果, 同時將資料以文字方式存入乙個名為
wage.dat的磁碟檔案中。請注意這個例子中不同結構成員的訪問。
例3:#i nclude
main()
a; file *fp;
float wage;
char c=』y』;
fp="fopen"("wage.dat", "w");
/*建立乙個檔案只寫*/
while(c==』y』||c==』y』)
/*判斷是否繼續迴圈*/ }
fclose(fp);}
在c語言中,指標p無論是指向結構體變數,還是結構體陣列,都能用p->num 表示num的值,怎麼理解啊?
11樓:陳慧玉
宣告bai struct student 型別
struct student
{int num;
int score;
};然後du定義zhi
乙個struct student 型別的變數dao stu;定義如下:
struct student stu;
如果要用
回結構體中的成員 用法答 stu.num; . 表示成員運算子
用指標也可達到同樣的效果
定義乙個指標變數p,它指向乙個 struct student型別的資料。意思是把結構體的起始位址賦給指標變數p;
struct student *p;
使用結構體中變數 方法為 (*p).num //注意括號不能省,因為「.」優先於「*」;
*p表示p 指向的結構體變數。
為了方便和使之直觀,可以把(*p).num改寫成 p->num 來代替。
結構體陣列其實和結構體變數是乙個道理
希望你可以理解
12樓:匿名使用者
結構體的bai指標的p->num表示num的值,這個很du容易理解。而結構zhi體陣列
dao的版指標,其實就像陣列的名稱一樣,
權均表示該陣列的起始位址。所以p->num也表示num的值,只是表示的是陣列中第乙個結構體中num的值。這樣講不知道你明白嗎??
13樓:熱血的鴿子
寫**最
復好理制解了:
baistruct ss ss1;
struct ss *p = &ss1;
p->num = 10; // 這裡du和zhi
dao ss1.num = 10 等價
struct ss ss2[10];
p = ss2;
p->num = 12 // 這裡和 ss2[0].num = 12 等價
c語言裡面的結構體是什麼意思
結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合,叫做結構。在c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的...
C語言中,什麼是結構體型別的資料 資料總共分幾個型別 謝謝
結構體型別就是以struct關鍵字定義的資料型別唄。結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合,也叫結構。是一種聚合型別,裡面可以包含多種資料型別,甚至可以結構體裡巢狀結構體。相信我,等你深入理解了c言語之後,結構體在c語言裡是乙個神器。其定義舉個簡單的例子 stru...
c語言的結構體和共同體的區別是什麼
結構體 structure 是一種構造型別,它是由若干 成員 組成的。每乙個成員可以是乙個基本資料型別或者又是乙個構造型別,而且每個成員的資料型別可以相同也可以不相同。共同體 union 將幾種不同的變數儲存在同一記憶體單元中,也就是使用覆蓋技術,幾個變數互相覆蓋,這種幾個不同的變數共同佔用一段記憶...