C语言从入门到进阶

news2025/5/11 16:34:40

视频: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);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python案例--养兔子

兔子繁殖问题是一个经典的数学问题&#xff0c;最早由意大利数学家斐波那契在13世纪提出。这个问题不仅在数学领域具有重要意义&#xff0c;还广泛应用于计算机科学、生物学和经济学等领域。本文将通过一个具体的Python程序&#xff0c;深入探讨兔子繁殖问题的建模和实现&#…

若依基本使用及改造记录

若依框架想必大家都了解得不少&#xff0c;不可否认这是一款及其简便易用的框架。 在某种情况下&#xff08;比如私活&#xff09;使用起来可谓是快得一匹。 在这里小兵结合自身实际使用情况&#xff0c;记录一下我对若依框架的使用和改造情况。 一、源码下载 前往码云进行…

Java基础教程(007):方法的重载与方法的练习

文章目录 6.5 方法的重载6.6 方法练习数组遍历数组最大值 6.5 方法的重载 在 Java 中&#xff0c;方法的重载是指在同一个类中定义多个方法&#xff0c;这些方法具有相同的名称&#xff0c;但参数列表不同。方法的重载是一种实现多态的方式&#xff0c;允许一个方法名以不同的…

Day27-【13003】短文,线性表两种基本实现方式空间效率、时间效率比较?兼顾优点的静态链表是什么?如何融入空闲单元链表来解决问题?

文章目录 本次内容总览第四节&#xff0c;两种基本实现方式概览两种基本实现方式的比较元素个数n大于多少时&#xff0c;使用顺序表存储的空间效率才会更高&#xff1f;时间效率比较&#xff1f;*、访问操作&#xff0c;也就是读运算&#xff0c;读操作1、插入&#xff0c;2、删…

Linux 小火车

1.添加epel软件源 2.安装sl 3. 安装完成后输入&#xff1a; sl

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective&#xff08;四&#xff09; 文章概括学习扩散噪声参数&#xff08;Learning Diffusion Noise Parameters&#xff09;三种等效的解释&#xff08;Three Equivalent Interpretations&#xff09; 文章概括 引用&#xf…

docker配置mysql并使用mysql connector cpp编程

mysql 配置mysql使用docker 这里使用docker安装了&#xff0c;比较简洁&#xff0c;不想使用了直接就可以把容器删掉&#xff0c;首先获取下镜像&#xff0c;如下命令 docker pull container-registry.oracle.com/mysql/community-server这里直接默认使用最新版本的mysql了 …

go理论知识——Go Channel 笔记 [特殊字符]

go理论知识——Go Channel 笔记 &#x1f4dd; 1. 基本概念 &#x1f9e0; 1.1 Channel 是什么&#xff1f; Channel 是 Go 语言中用于在不同 Goroutine 之间进行通信的机制。Channel 是类型安全的&#xff0c;意味着你只能发送和接收特定类型的数据。 1.2 Channel 的创建 …

论文阅读笔记:MambaOut: Do We Really Need Mamba for Vision?

论文阅读笔记&#xff1a;MambaOut: Do We Really Need Mamba for Vision? 1 背景2 创新点3 方法4 模块4.1 Mamba适合什么任务4.2 视觉识别任务是否有很长的序列4.3 视觉任务是否需要因果token混合模式4.4 关于Mamba对于视觉的必要性假设 5 效果 论文&#xff1a;https://arxi…

games101-(3/4)变换

缩放&#xff1a; 对称 切变 旋转 考虑&#xff08;1.0&#xff09;这个点 同理考虑&#xff08;0&#xff0c;1&#xff09;点即可 齐次方程 考虑在二维的坐标点后面增加一个维度 所有的仿射变换都可以写成齐次坐标的形式 a b c d 是线性变换 tx ty 是平移&#xff1b; …

【Linux】磁盘

没有被打开的文件 文件在磁盘中的存储 认识磁盘 磁盘的存储构成 磁盘的效率 与磁头运动频率有关。 磁盘的逻辑结构 把一面展开成线性。 通过扇区的下标编号可以推算出在磁盘的位置。 磁盘的寄存器 控制寄存器&#xff1a;负责告诉磁盘是读还是写。 数据寄存器&#xff1a;给…

ElasticSearch-文档元数据乐观并发控制

文章目录 什么是文档&#xff1f;文档元数据文档的部分更新Update 乐观并发控制 最近日常工作开发过程中使用到了 ES&#xff0c;最近在检索资料的时候翻阅到了 ES 的官方文档&#xff0c;里面对 ES 的基础与案例进行了通俗易懂的解释&#xff0c;读下来也有不少收获&#xff0…

海浪波高预测(背景调研)

#新星杯14天创作挑战营第7期# ps&#xff1a;图片由通义千问生成 历史工作&#xff1a; 针对更高细粒度、更高精度的波浪高度预测任务&#xff1a; Mumtaz Ali 等人提出了一种多元线性回归模型&#xff08;MLR-CWLS&#xff09;&#xff0c;该模型利用协方差加权最小二乘法&a…

景联文科技加入AIIA联盟数据标注分委会

2025年1月16日&#xff0c;中国人工智能产业发展联盟&#xff08;简称AIIA&#xff09;数据委员会数据标注分委会&#xff08;以下简称“分委会”&#xff09;正式成立。景联文科技成为第一批AIIA联盟数据标注分委会委员单位。 数据标注分委会的成立旨在搭建数据标注领域产学研…

【MySQL】--- 复合查询 内外连接

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; MySQL &#x1f3e0; 基本查询回顾 假设有以下表结构&#xff1a; 查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还要满足他们的姓名首字母为…

书生大模型实战营2

L0——入门岛 Python基础 Conda虚拟环境 虚拟环境是Python开发中不可或缺的一部分&#xff0c;它允许你在不同的项目中使用不同版本的库&#xff0c;避免依赖冲突。Conda是一个强大的包管理器和环境管理器。 创建新环境 首先&#xff0c;确保你已经安装了Anaconda或Minico…

HTML5+SVG+CSS3实现雪中点亮的圣诞树动画效果源码

源码介绍 这是一款基于HTML5SVGCSS3实现雪中点亮的圣诞树动画效果源码。画面中的圣诞树矗立在雪地中&#xff0c;天上飘落着雪花。当鼠标滑过圣诞树时&#xff0c;可见到圣诞树上的灯光闪烁&#xff0c;同时左下角探出雪怪模样的半个脑袋&#xff0c;四处张望着。整体画面栩栩…

产业园管理系统提升企业综合管理效率与智能化水平的成功案例分析

内容概要 在当前科技迅猛发展的时代&#xff0c;越来越多的企业意识到数字化转型的重要性。为了提升管理效率和智能化水平&#xff0c;产业园管理系统应运而生&#xff0c;成为众多园区和商办写字楼不可或缺的一部分。无论是工业园、物流园还是公寓&#xff0c;这些系统都能为…

LeetCode - #195 Swift 实现打印文件中的第十行

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

强化学习数学原理(三)——值迭代

一、值迭代过程 上面是贝尔曼最优公式&#xff0c;之前我们说过&#xff0c;f(v)v&#xff0c;贝尔曼公式是满足contraction mapping theorem的&#xff0c;能够求解除它最优的策略和最优的state value&#xff0c;我们需要通过一个最优v*&#xff0c;这个v*来计算状态pi*&…