struct和typedef struct 有什麼不同呢?
[提問] 最近在論壇中經常看到有些初學者問起, struct _x1 { ...}x1; 和 typedef struct _x2{ ...} x2; 有什麼不同?
[知識點]
結構也是一種資料型別, 可以使用結構變數, 因此, 象其它
型別的變數一樣, 在使用結構變數時要先對其定義。
定義結構變數的一般格式為:
struct 結構名
{
型別 變數名;
型別 變數名;
...
} 結構變數;
結構名是結構的識別符號不是變數名。
另一種常用格式為:
typedef struct 結構名
{
型別 變數名;
型別 變數名;
...
} 結構別名;
另外注意: 在C中,struct不能包含函式。在C++中,對struct進行了擴充套件,可以包含函式。
========================================================================
例項1: struct.cpp
#include <iostream>
using namespace std;
typedef struct _point{
int x;
int y;
}point; //定義類,給類一個別名
struct _hello{
int x,y;
} hello; //同時定義類和物件
int main()
{
point pt1;
pt1.x = 2;
pt1.y = 5;
cout<< "pt1.x=" << pt1.x << "pt.y=" <<pt1.y <<endl;
//hello pt2;
//pt2.x = 8;
//pt2.y =10;
//cout<<"pt2.x="<< pt2.x <<"pt2.y="<<pt2.y <<endl;
//上面的hello pt2;這一行編譯將不能通過. 為什麼?
//因為hello是被定義了的物件例項了.
//正確做法如下: 用hello.x和hello.y
hello.x = 8;
hello.y = 10;
cout<< "hello.x=" << hello.x << "hello.y=" <<hello.y <<endl;
return 0;
}
相關文章
- typedef and struct inside class definition?StructIDE
- Struct 和 Union有下列區別Struct
- C時間函式strftime、struct timespec 和 struct timeval函式Struct
- 關於typedef在struct使用上的一些問題Struct
- 關於typedef和struct使用過程中的一些思考(2020/12/23更新)Struct
- 為什麼 Go 語言 struct 要使用 tagsGoStruct
- struct的tag到底可以用來做什麼?Struct
- Ruby Struct EqualStruct
- Swift中Class和Struct異同SwiftStruct
- struct轉map (反射)Struct反射
- go 結構體 (struct) 和方法 (method)Go結構體Struct
- swift中Class和Struct的區別SwiftStruct
- 【原創】專案過程和專案管理有什麼不同呢?專案管理
- 深入理解Swift中的Class和StructSwiftStruct
- struct和malloc記憶體互轉例子Struct記憶體
- 關於Golang struct{}{}用法和注意事項GolangStruct
- array+map+struct.hqlStruct
- struct的一種用法Struct
- Go語言之 Struct TagGoStruct
- 重學c#————structC#Struct
- 當 Go struct 遇上 MutexGoStructMutex
- java和c++有什麼不同JavaC++
- C語言:一個例子理解 union 和 structC語言Struct
- C++ class 和 struct 可以相互繼承嗎C++Struct繼承
- 整明白 Golang struct 例項化和賦值GolangStruct賦值
- Python基礎之:struct和格式化字元PythonStruct字元
- struct的匿名用法詳解Struct
- Rust 生命週期 - lifetime in structRustStruct
- linux redefinition of 'struct timspec'解決LinuxStruct
- YottaChain和IPFS礦機有什麼不同?AI
- Linux和Unix有什麼不同之處?Linux
- 語句和表示式有什麼不同
- python中,"_"和"__"的作用有什麼不同?Python
- C# 中 Struct 和 Class 的區別總結C#Struct
- C++基礎(八)struct和class的區別C++Struct
- Python中的arange是什麼?和range有什麼不同?Python
- Go Struct超詳細講解GoStruct
- Hibernate中@Struct註解型別Struct型別