在C語言和C++中,結構體定義是存在區別的,好比在C語言中定義結構體,首先是使用typedef。
ios
typedef struct Student{ int age; }Stu;
此時定義的結構體。可使用 struct Student stu1 來聲明變量。固然也可使用Stu stu1 來聲明,由於此時已經將struct Student 定義爲Stu。spa
#include <stdio.h> typedef struct Student{ int a; }Stu; int main() { struct Student stu1; stu1.a = 17; printf("第一個:%d\n", stu1.a); Stu stu2; stu2.a = 18; printf("第二個:%d\n", stu2.a); return 0; }
而此時C++ 只須要定義 struct Student就能夠了
io
#include <iostream> using namespace std; struct Student{ int a; }stu2; //聲明結構體的同時聲明變量 int main() { struct Student stu1; stu1.a = 18; stu2.a = 19; cout << "第一個:"<< stu1.a<<endl; cout << "第二個:"<< stu2.a<<endl; return 0; }
聲明的同時能夠直接聲明一個變量,好比stu2。而在後續的聲明中,能夠直接使用 struct Student 來聲明新的變量。若是不聲明這個結構體的名稱,則沒法聲明對於的變量,此處就不能聲明stu1class
#include <iostream> using namespace std; struct { int a; }stu2; //聲明結構體的同時聲明變量 int main() { //struct Student stu1; //stu1.a = 18; stu2.a = 19; //cout << "第一個:"<< stu1.a<<endl; cout << "第二個:"<< stu2.a<<endl; return 0; }
未完待續
stream