結構
回答
不,它們不一樣。在a
和b
的語言允許的操作是不同的,因爲它們的類型是不同的。當它們包含相同的位模式時,這些位模式的解釋可能不同。
編譯器可能採取不同的途徑從函數返回int
vs struct node
,或者將它們作爲函數參數傳遞。
實質上a
和b.a
具有相同的行爲。編譯器有時可以選擇使用成員類型優化單個成員結構。
差異
1.編譯時間:一類和b的類型是不同的
2.編譯時間爲:a = 42(OK),B = 42(錯誤)
3.運行時間:編譯器可能會選擇使用不同的策略,同時將a和b複製到同一類型的其他變量中。 4. section 6.7.2.1 in the C99 standard說有可能是一個結構對象內無名填充,但不是在它的開始。,這意味着sizeof a
允許是不等於sizeof b
額外筆記
單件結構幾乎總是不需要的,除非
1.其他成員是有條件編譯出來的。 (保持代碼可管理)
2.當您計劃將數組作爲函數參數傳遞時,使用賦值運算符從函數或複製數組中返回數組。
3.限制操作。 [例如,你不想emp_id被添加,減去等,但分配是OK]
不,他們是不一樣。
int a;
- >一個整數類型爲a
的變量。
struct node b;
→變量名稱爲b
類型struct node
。
這裏,該結構只包含int a
但事實並非如此總是。這兩個變量是
- 確實是不同的數據類型。
- 表示方式不同。
- 訪問方法不同。
親愛的@downvoter,請通過發表評論讓我知道這個答案中的錯誤。 – 2014-12-09 13:16:18
不要在意匿名downvoter並分享你認爲正確的東西,除非被別人解釋爲不正確。 – 2014-12-09 13:17:26
@MohitJain好吧,你是先生,但有時候這真的是激動人心的。 – 2014-12-09 13:18:38
根據你的例子,兩者都是相同的。但結構主要用於使用公共變量名訪問多個變量。
struct node {
int a;
float b;
char c;
};
struct node b;
因此,現在使用變量b我們可以訪問三種不同的數據類型。所以這是結構的主要優點。
訪問該結構作爲普通變量。 b.a; 如果你正在使用指針,那麼這將是b-> a。請注意,你必須爲此分配內存。
請......答案應該提供格式碼。 BTW downvote不是從我。 – 2014-12-09 14:11:40
- 1. 結構中的結構
- 2. Swift:結構,或不結構
- 3. 匿名結構,結構{} {}和{}
- 4. 結構數組 - 結構?
- 5. 結構與LPWSTR和結構
- 6. 結構數組的結構
- 7. 分配結構=結構
- 8. 結構Vs的結構
- 9. 結構內的結構?
- 10. MPI從結構中創建MPI_Datatype包含結構與typedef結構
- 11. 使用結構(字節)和SWIFT - 結構到NSData和NSData結構
- 12. 結構化,非結構化和半結構化數據
- 13. Coldfusion 8:結構體結構數組結構體
- 14. 結構內結構,能夠改變內部結構類型
- 15. 包含結構的結構與包含指針的結構
- 16. 構建XML結構
- 17. 結構
- 18. 結構
- 19. 結構
- 20. 結構
- 21. 服務結構指定結構URL
- 22. typedef結構與結構定義
- 23. 訪問的結構是在結構
- 24. 結構中的動態結構
- 25. C11結構繼承與匿名結構
- 26. 使用typedef結構化值結構
- 27. 結構或指針的結構?
- 28. 二叉樹結構(自引用結構)
- 29. 在結構體內使用結構體
- 30. 帶結構字段指針的結構
基本的東西! int是一個整數。結構是一個結構 – 2014-12-09 13:08:09
第二個片段正在審查[右邊的門](http://i.imgur.com/7OZfY8T.png)。只用一個成員聲明一個結構通常不會有用。 – 2014-12-09 13:09:02