#include <string>
using namespace std;
struct Student //聲明結構體類型Student
{ string name;
int num;
char sex;
};
int main()
{ Student *p; //定義指向結構體類型Student的數據的指針變量
p=new Student; //用new運算符開闢一個存放Student型數據的空間
p->name="Wang Fun"; //向結構體變量的成員賦值
p->num=10123;
p->sex='m';
cout<<p->name<<endl<<p->num<<endl<<p->sex<<endl; //輸出各成員的值
delete p; //撤銷該空間
return 0;
}
//使用Student 後面不是指針的變量,或者用指針指向Student類型的變量然後輸出不是也不需要使用new增加空間的嗎?
爲什麼直接使用指針需要使用new增加空間,並且就是沒有p=new Student; 這句的話,程序就會出錯
這個是爲什麼,爲什麼其他類型的不需要而指針需要使用Student增加空間,
Student a 在聲明的時候就自動開闢空間了
而Student *P他沒有自動開闢所以
需要使用p=new Student這句開闢空間
剛剛一高手說的,我回復這樣也是爲了以後有人遇到這問題的時候
能夠參考一下我的
哈哈
這是你對象的命名方式有關的,如果你直接寫 Student a,那樣是會直接開闢空間的,
而指針不會這樣
所以要用NEW