C语言从入门到进阶

视频:https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from=333.788.player.switch&vd_source=c988f28ad9af37435316731758625407&p=23

//枚举常量
enum Sex{
	MALE,
	FEMALE,
	SECRET
};

printf("%d\n", MALE);//0
printf("%d\n", FEMALE);//1
printf("%d\n", SECRET);//2

enum Sex flanza = MALE;

转义字符:
\ddd ddd表示1~3个八进制的数字。 如: \130 为 X
\xdd dd表示2个十六进制数字。 如: \x30 为 0

//test.c
int a = 100;
//main.c
extern int a;//extern申明在mian.c文件中使用test.c的全局变量a
int main() {
	printf("%d\n", a);
	return 0;
}

一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使
用。
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
x86 32位
x64 64位

int* p1,p2,p3;//p1是int*,p2p2是int

在这里插入图片描述

struct Stu {
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};

void print(struct Stu* p) {//指针变量p接收s的地址
	//结构体指针变量->成员名//地址指向的对象
	printf("%s %d %s %s\n", p->name, p->age, p->sex, p->tele);
	//结构体对象.成员名//解地址再获取成员
	printf("%s %d %s %s\n", (*p).name, (*p).age, (*p).sex, (*p).tele);
}

int main() {
	struct Stu s = {
		"zhansan",
		20,
		"male",
		"100120110"
	};
	print(&s);//传s的地址

	return 0;
}

在这里插入图片描述
键盘输入a不回车,a还没到输入缓冲区;
回车后,a到达输入缓冲区,getchar()取输入缓冲区的一个字符a;
打印a;
getchar()取输入缓冲区的一个字符\n
打印换行;
在这里插入图片描述
输入一个1并回车,getchar()获取了两次,循环走了2次
在这里插入图片描述
scanf以空格或回车作为输入不同组内容的 组间间隔和结束符号

在一个有序数组中查找具体的某个数字n。(讲解二分查找)

	int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0]) - 1;//r若为字符串数组,元素个数包含'\0',减2个才表示数组的最后一个元素下标
	int mid = left + right / 2;
	int find = 7;
	while (left <= right)
	{
		printf("Find...\n");
		if (arr[mid] > find)
		{
			right = mid;
		}
		else if (arr[mid] < find)
		{
			left = mid;
		}
		else
		{
			printf("Find!\n");
			break;
		}
		mid = left + (right - left) / 2;//防溢出
	}

猜数字游戏实现

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void menu()
{
	printf("********************\n");
	printf("******1.play********\n");
	printf("******0.exit********\n");
	printf("********************\n");
}
//RAND_MAC为0x7fff,rand()函数所能返回的最大值
void game()
{
	int random_num = rand() % 100 + 1;//1-100之间的数
	int input = 0;
	while (1)
	{
		printf("输入1-100之间的数字:>\n");
		scanf("%d", &input);
		if (input > random_num)
		{
			printf("大了\n");
		}
		if (input < random_num)
		{
			printf("小了\n");
		}
		else
		{
			printf("好了\n");
			break;
		}
	}
}
int main()
{
	int input = 0;
	srand((unsigned)time(NULL));//time()获得时间戳,程序每次运行时间戳不同,设置的随机种子不同,产生的随机数不同;
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			break;
		default:
			printf("选择错误,重新选择\n");
		}
	} while (input);

	return 0;
}

在这里插入图片描述
printf返回值为打印的元素个数

int my_strlen(char* p)//求字符串的长度
{
	if (*p != '\0')
		return 1 + my_strlen(p + 1);
	else
		return 0;
}
void print(int n)//接受一个整型值(无符号),按照顺序打印它的每一位。
{
	if (n > 9)
		print(n / 10);
	print("%d ", n % 10);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960566.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blazor-Blazor Web App项目结构

让我们还是从创建项目开始&#xff0c;来一起了解下Blazor Web App的项目情况 创建项目 呈现方式 这里我们可以看到需要选择项目的呈现方式&#xff0c;有以上四种呈现方式 ● WebAssembly ● Server ● Auto(Server and WebAssembly) ● None 纯静态界面静态SSR呈现方式 WebAs…

新版IDEA创建数据库表

这是老版本的IDEA创建数据库表&#xff0c;下面可以自己勾选Not null&#xff08;非空),Auto inc&#xff08;自增长),Unique(唯一标识)和Primary key&#xff08;主键) 这是新版的IDEA创建数据库表&#xff0c;Not null和Auto inc可以看得到&#xff0c;但Unique和Primary key…

某公交管理系统简易逻辑漏洞+SQL注入挖掘

视频教程在我主页简介或专栏里 目录: 某公交管理系统挖掘 SQL注入漏洞 越权漏洞 某公交管理系统挖掘 SQL注入漏洞 前台通过给的账号密码,进去 按顺序依次点击1、2、3走一遍功能点&#xff0c;然后开启抓包点击4 当点击上图的4步骤按钮时&#xff0c;会抓到图下数据包&a…

通过案例研究二项分布和泊松分布之间关系(2)

通过案例研究二项分布和泊松分布之间关系 2. 汽车出事故的概率p与保险公司盈利W之间的关系3.通过遗传算法多次迭代计算控制p为多少时公司盈利最大(1) 计算过程(2) 结果及分析(计算过程详见附录二程序) 4.改变思路求解固定p为0.01时,保险费用如何设置公司可获得最大利润(1)计算过…

mysql 学习5 mysql图形化界面DataGrip下载 安装 使用

一、下载和安装 下载&#xff1a; 其他版本 - DataGrip PS&#xff1a;安装目录最好不要有中文。 C:\Program Files\JetBrains\DataGrip 2023.3.4 二、 夸克网盘分享 当前电脑是下载到 &#xff1a;D:\Ctool\mysql\datagrip2023_3_4\datagrip2024\jetbra-datagrip\scripts …

2025.1.21——八、[HarekazeCTF2019]Avatar Uploader 2(未完成) 代码审计|文件上传

题目来源&#xff1a;buuctf [HarekazeCTF2019]Avatar Uploader 2 一、打开靶机&#xff0c;整理信息 跟Avatar Uploader 1 题目长得一样&#xff0c;先上传相同文件看看情况&#xff0c;另外这道题还有源码&#xff0c;可以看看 二、解题思路 step 1&#xff1a;上传同类…

使用EVE-NG-锐捷实现OSPF

一、OSPF基础知识 Open shortest Path First(OSPF)开放式最短路径优先协议 1.OSPF的关系状态 (1)邻居关系(TWO-WAY) 只发送hello包不发送LSA包(链路状态通告包) (2)邻接关系(FULL) OSPF设备与设备之间相互建立OSPF关系&#xff0c;初始为邻居关系(TWO-WAY)状态&#xff0…

未来五年高速线缆市场有望翻3倍!AEC凭借传输距离优势占比将更高

未来五年高速线缆市场有望翻3倍&#xff01;AEC凭借传输距离优势占比将更高 高速铜缆凭借高带宽、高速等优势&#xff0c;有望成为数据中心连接的最优解。铜缆高速连接主要用于数据中心内部服务器与交换机之间、交换机... - 雪球 高速铜缆凭借高带宽、高速等优势&#xff0c;有…

zyNo.19

哈希&#xff08;md5&#xff09;绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…

怎么样把pdf转成图片模式(不能复制文字)

贵但好用的wps&#xff0c; 转换——转为图片型pdf —————————————————————————————————————————— 转换前&#xff1a; 转换后&#xff1a; 肉眼可见&#xff0c;模糊了&#xff0c;且不能复制。 其他免费办法&#xff0c;参考&…

飞致云开源社区月度动态报告(2025年1月)

自2023年6月起&#xff0c;中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》&#xff0c;旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况&#xff0c;以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…

hive:数据导入,数据导出,加载数据到Hive,复制表结构

hive不建议用insert,因为Hive是建立在Hadoop之上的数据仓库工具&#xff0c;主要用于批处理和大数据分析&#xff0c;而不是为OLTP&#xff08;在线事务处理&#xff09;操作设计的。INSERT操作会非常慢 数据导入 命令行界面:建一个文件 查询数据>>复制>>粘贴到新…

Dismissible组件的用法

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只…

【Redis】缓存+分布式锁

目录 缓存 Redis最主要的使用场景就是作为缓存 缓存的更新策略&#xff1a; 1.定期生成 2.实时生成 面试重点&#xff1a; 缓存预热&#xff08;Cache preheating&#xff09;&#xff1a; 缓存穿透&#xff08;Cache penetration&#xff09; 缓存雪崩 (Cache avalan…

开源物业管理系统赋能社区管理提升居民服务体验与满意度

内容概要 在现代物业管理中&#xff0c;开源物业管理系统的出现为社区管理带来了新的契机。这种系统的核心思想是通过开放、共享的方式&#xff0c;为各类物业管理需求提供灵活的解决方案。从基本的信息传递到复杂的投诉处理&#xff0c;开源物业管理系统能够根据不同社区的实…

动态规划DP 数字三角型模型 数字三角形

数字三角形 原题链接 AcWing 898.数字三角形 题目描述 给定一个如下图所示的数字三角形&#xff0c;从顶部出发&#xff0c;在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点&#xff0c;一直走到底层&#xff0c;要求找出一条路径&#xff0c;使路径上的数字…

全连接神经网络(前馈神经网络)

一、全连接神经网络介绍 在多层神经网络中&#xff0c; 第 N 层的每个神经元都分别与第 N-1 层的神经元相互连接。 1、神经元 这个神经元接收的输入信号为向量 &#xff0c; 向量为输入向量的组合权重&#xff0c; 为偏置项&#xff0c; 是一个标量。 神经元的作用是对输入向…

Linux:多线程[2] 线程控制

了解&#xff1a; Linux底层提供创建轻量级进程/进程的接口clone&#xff0c;通过选择是否共享资源创建。 vfork和fork都调用的clone进行实现&#xff0c;vfork和父进程共享地址空间-轻量级进程。 库函数pthread_create调用的也是底层的clone。 POSIX线程库 与线程有关的函数构…

DeepSeek崛起:中国AI新星如何撼动全球资本市场格局

引言 近期&#xff0c;中国人工智能实验室DeepSeek发布的两款开源模型——DeepSeek V3和DeepSeek R1——以其优异的性能和低廉的成本迅速爆火&#xff0c;引发了全球资本市场的震动&#xff0c;尤其对美国资本市场产生了显著影响。DeepSeek R1更是能够在数学、代码和推理任务上…

【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令

文章目录 指令格式&#xff08;重点&#xff09;1. 立即数2. 寄存器位移 一、数据传送指令1. MOV指令2. MVN指令3. LDR指令 二、数据计算指令1. ADD指令1. SUB指令1. MUL指令 三、位运算指令1. AND指令2. ORR指令3. EOR指令4. BIC指令 四、比较指令五、跳转指令1. B/BL指令2. l…