前言
记录1.8学习内容及要点,主要内容:运算符、指针、结构体、文件
一、运算符
例:%(取余)取模
符号与左值一致
例:*= / +=
a *= b + c;// a = a*(b + c)
a += b + c;// a = a+(b + c)
例:前置++(先计算后赋值)/后置++(先赋值后计算)
二、指针
存储变量首地址的变量
指针的大小
在32位操作系统中,指针大小都是 4字节
在64位操作系统中,指针大小都是 8字节
三、结构体
按照开发者需求 自己创建的数据类型, 既结构体类型。
#include
struct Student {
char s_id[10];//学号偏移量0
char s_name[10];//姓名偏移量(0+10)=10
char s_sex[5];//性别偏移量(10+10)= 20
int s_age;//年龄偏移量(20+5)=25 + 3(成员的偏移量必须是自身大小的整数倍) = 28 +4(结构体大小 = 最后一个成员偏移量+自身大小) = 32
};
int main() {
//定义结构体变量,并初始化
struct Student stud = { "19020101" ,"mz","man", 21 };
//使用 . 访问结构体变量的成员
printf("id: %s \n",stud.s_id);
printf("name: %s \n", stud.s_name);
printf("sex: %s \n", stud.s_sex);
printf("age: %d \n", stud.s_age);
printf("size_stud: %d \n", sizeof(stud));//sizeof(stud) = 32
printf("size_student: %d \n", sizeof(Student));//sizeof(student) = 32
return 0;
}
计算结构体的大小时不是简单想加,要考虑地址对齐,例:例子(详)
四、文件
缓冲区(Buffer):
在程序执行时,所提供的一块存储空间(在内存中),可用来暂时存放做准备执行的数据。它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多。
c语言提供的标准文件
#include
int main() {
fprintf(stdout, "Hello world");
return 0;
}
结果:
原文链接:https://blog.csdn.net/qq_50999929/article/details/112333685