1.结构体的三种声明创建方式
//声明student结构体
struct Student
{
string name;
int age;
}s3;
int mainStruct() {
//初始化结构体的三种方式
//1.直接创建时初始化
Student s1 = { "张三",10 };
//2.使用.初始化
Student s2;
s2.name = "李四";
s2.age = 12;
//3.在声明结构体时顺便创建,如s3
return 0;
}
主要是强调第三种,不过不常见
2.结构体与指针
使用结构体的指针,可以借助->获取属性
//声明student结构体
struct Student
{
string name;
int age;
};
int mainStructAndPoint() {
//主要探讨指针与结构体
Student s1 = { "张三" };
Student* p = &s1;
cout << p->name << p->age << endl;
p->age = 10;
cout << p->name << p->age << endl;
return 0;
}
3.sizeof()与指针所占空间
32位系统下,所有指针都是4个字节空间
int mainSizeOfPoint() {
//学习指针占用空间大小
//32位系统下,所有指针都是4个字节空间
//64位系统下,所有指针都是8个字节空间
//可以通过修改visual studio上方的debug来调整32位和64位
cout << "指针大小:" << sizeof(int*) << endl;
cout << "指针大小:" << sizeof(float*) << endl;
cout << "指针大小:" << sizeof(long long*) << endl;
cout << "指针大小:" << sizeof(char*) << endl;
//cout << p << endl;
return 0;
}
4.野指针
int mainWildPoint() {
//野指针是指向了未申请的地址
//模拟野指针
int* p = (int*)0x100;
cout << *p << endl;
return 0;
}
5.布尔类型
除了0以外,都是真
6.常量的两种定义方式
//第一种常量命名方式:
//要注意,这个命名方式不需要跟引号
//这个命名方式的本质是简单的文本替换
#define WEEK 7
int mainConstant() {
//使用第一种常量命名方式
//WEEK = 8;
cout << "一周有" << WEEK << "天" << endl;
//第二种常量命名方式
const int MONTH = 12;
cout << "一年有" << MONTH << "个月" << endl;
return 0;
}
7.C风格的字符串
int mainStringOfC() {
//使用C风格的字符串,其实就是字符数组
char str[] = "String Of C";
cout << str << endl;
return 0;
}