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;
}
相關文章
- 結構體定義:struct與typedef struct 用法詳解和用法小結結構體Struct
- typedef and struct inside class definition?StructIDE
- Struct 和 Union有下列區別Struct
- 結構體定義 typedef struct 用法詳解和用法小結結構體Struct
- 為什麼用struct包一下指標不直接宣告呢Struct指標
- 關於typedef在struct使用上的一些問題Struct
- Opensturt和Struct區別Struct
- 為什麼 Go 語言 struct 要使用 tagsGoStruct
- Python中struct.pack()和struct.unpack()用法詳解PythonStruct
- golang struct 有點小疑問?GolangStruct
- C時間函式strftime、struct timespec 和 struct timeval函式Struct
- struct的tag到底可以用來做什麼?Struct
- Python中struct.pack()和struct.unpack()用法詳細說明PythonStruct
- 【原創】專案過程和專案管理有什麼不同呢?專案管理
- Ruby Struct EqualStruct
- 結構 STRUCTStruct
- Swift中Class和Struct異同SwiftStruct
- 請教下web server與app server有什麼不同呢!WebServerAPP
- 關於typedef和struct使用過程中的一些思考(2020/12/23更新)Struct
- struct和union和enum宣告的語法Struct
- struct轉map (反射)Struct反射
- 結構體struct結構體Struct
- Struct與Class辨析Struct
- webservice中呼叫structWebStruct
- c#之structC#Struct
- swift中Class和Struct的區別SwiftStruct
- go 結構體 (struct) 和方法 (method)Go結構體Struct
- java和c++有什麼不同JavaC++
- C++和Java有什麼不同C++Java
- 深入理解Swift中的Class和StructSwiftStruct
- 關於Golang struct{}{}用法和注意事項GolangStruct
- C++中 struct 和 class 的區別C++Struct
- C++中struct 和 class的區別C++Struct
- struct和malloc記憶體互轉例子Struct記憶體
- 今天在研究JSF框架,感覺怎麼沒有STRUCT清晰。JS框架Struct
- array+map+struct.hqlStruct
- Go語言之 Struct TagGoStruct
- 當 Go struct 遇上 MutexGoStructMutex