c++結構體指標
阿新 • 來源:網路 • 發佈:2022-12-24
先上程式碼
#include<iostream>
using namespace std;
struct Student1 {
int id = 200;
int s = 100;
char* name = "lisi";
};
void test2() {
Student1 *stu = (Student1 *)malloc(sizeof(Student1));
int *var = (int *)stu;
cout << "stu->id == " << stu->id << ", stu->name == " << stu->name << endl;
cout << "*var == " << *var << endl;
}
void test3() {
Student1 *stu = (Student1 *)malloc(sizeof(Student1));
stu->id = 100;
stu->name = "zhangsan";
int *var = (int *)stu;
cout << "stu->id == " << stu->id << ", stu->name == " << stu->name << endl;
cout << "*var == " << *var << endl;
}
int main() {
cout << "-----test2-----" << endl;
test2();
cout << "\n-----test3-----" << endl;
test3();
}
結果
-----test2-----
stu->id == 1579168, stu->name == @
*var == 1579168
-----test3-----
stu->id == 100, stu->name == zhangsan
*var == 100
說明
malloc()只會申請記憶體並且返回申請到的記憶體空間的首地址,不負責初始化。- 記憶體只負責存資料,資料最終的值由變數型別決定,比如同一個地址
stu;*stu.id和*var的值是相等的。
