初识数组、指针、结构体、文件

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标准错误文件,一般指显示器

今天也要好好学习呀~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹿可可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值