数组、指针、结构体、文件
1、数组
1.1定义
数组是包含给定类型的一组数据,即一组相同类型元素的集合。
1.2运算符
1.2.1 C语言运算符优先级表
1.2.2运算符举例
1.%(余数)取模
辗转相除法:gcd(a,b)=gcb(b,a mod b);
最大公约数:
- 代码展示
#include <stdio.h>
int main(){
int a = 0, b = 0;
scanf_s("%d %d", &a, &b);
while (b != 0)
{
int c = a % b;
a = b;
b = c;
}
printf("%d", a);
return 0;
}
- 结果展示
2. 三目运算符
用于替换简单的if语句,双分支if - 代码举例:
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int c = 0;
c = a < b ? a : b;
printf("%d\n", c);
return 0;
}
- 结果展示:
a满足条件,输出a值
3.前置++、后置++
- j=i++;先赋值再自增
- j=++i;先自增再赋值
2、指针
2.1定义
存储地址的变量称为指针变量,在c语言中指针就是地址。
内存是计算机中重要的部件之一,是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行,为了有效的使用内存,就把内存以8位二进制(bit)划分位存储单元(1字节)。为了有效的访问到内存的每个存储单元,就给内存存储单元进行编号,这些编号就被称为该内存存储单元的地址。
1K=2^10
1M=2^20
1G=2^30
1T=2^40
地址没有大小之说,只有高低之说
2.2主存示意图
计算机CPU两种运行模式:保护模式;实模式
2.3指针的大小
- 如果硬件操作系统和编译器是64位:指针大小8字节
- 如果硬件操作系统和编译器是32位:指针大小4字节
- 计算指针大小
#include <stdio.h>
int main()
{
printf("char*size:%d\n", sizeof(char*));
printf("short*size:%d\n", sizeof(short*));
printf("int*size:%d\n", sizeof(int*));
printf("double*size:%d\n", sizeof(double*));
return 0;
}
结果:
2.4 *的三种意义
- 乘号
- 声明一个指针
- 和指针变量结合时候,变成指向概念
2.5地址的输出
- 代码展示:
#include <stdio.h>
int main()
{
int a = 10;
printf("%d\n", a);//10进制输出
printf("%o\n", a);//8进制输出
printf("%x\n", a);//16进制输出
//16进制输出地址
printf("0x%08x\n", &a);
printf("0X%08X\n", &a);
printf("%p\n", &a);
printf("%#p\n", &a);
}
- 输出结果:
2.6 ASCII码表
3.结构体
3.1定义
程序开发人员可以使用结构体来封装一些属性,设计新的类型,在C语言中称为结构体类型。
在C语言中,结构体是一种数据类型。(由程序开发者自己设计的类型)
3.2一个简单的结构体
- 代码展示
#include <stdio.h>
struct YMD
{
int year;
int month;
int day;
};
struct Student
{
char s_id[10];//学号
char s_name[10];//姓名
char s_sex[5];//性别
int s_age;//年龄
YMD birth;//结构体变量
};
int main(){
//定义结构体变量,并初始化
struct Student stud = { "202001", "kele", "men", 18 };
//使用.访问结构体变量的成员
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);
//两个点调用结构体中的结构体
stud.birth.year=1999;
printf("year: %d\n", stud.birth.year);
return 0;
}
- 结果展示:
4.文件
4.1读写文件图示
4.2文件类型
- 文本文件:打开文件时是以ASCII 值表示的文件
- 二进制文件:内存中是什么数据,写入磁盘也是什么数据
4.3 C语言提供给的三个标准文件
文件 | 硬件设备 |
---|---|
stdin | 标准输入文件,一般指键盘 |
stdout | 标准输出文件,一般指显示器 |
stderr | 标准错误文件,一般指显示器 |
今天也要好好学习呀~