C语言基础2
一、变量的作用域
局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程。
int main() {
{
int a = 10;
printf("a = %d\n", a);
}
printf("a = %d\n", a); //报错位置
return 0;
}
这里会发生报错: “a”: 未声明的标识符。 可见a是局部变量其作用域仅在自己的括号内
int a = 10;
int main() {
{
printf("a = %d\n", a);
}
printf("a = %d\n", a);
return 0;
}
全局变量的作用域是整个工程


extern int a; void test() {printf("a = %d\n", a); } int main() {test();{printf("a = %d\n", a);}printf("a = %d\n", a);return 0; }
二、变量的周期
局部变量的生命周期,进去作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期,整个程序的生命周期
三、常量
1.字面常量
1.int main() {30;3.14;"abc"; //字符常量return 0;
}
2.const修饰的常变量
2.int main() {const int a = 10; //c语言中,const修饰的a,本质是变量,但是不能直接修改,有常量的属性但是变量a = 20;printf("a = %d\n", a);return 0;
}
左值指定 const 对象 a不可修改
3.#define定义的标识符常量
3.#define MAX 100
#define STR abcd
int main() {printf("%d\n", MAX);int a = MAX;printf("%d\n", a);printf("%s\n", STR);return 0;
}
4.枚举常量
4.enum Color {RED,GREEN,BLUE
};
enum Sex {MALE,FEMALE,SECRET
};
int main() {//三原色int num = 10;enum Color c = RED;return 0;
}
四、字符串
int main() {//char字符类型//'a' 单引号字符char ch = 'w'; //"abcder" 双引号字符串return 0;
}
字符串以 \0 为结束标志
int main() {//char字符类型//'a' 单引号字符char ch = 'w'; //"abcder" 双引号字符串char arr1[] = "abcdef";char arr2[] = { 'a','b','c','d','e','f' };return 0;
}
运行结果:
char arr2[] = { 'a','b','c','d','e','f','\0'};
造成这种的原因是因为字符串是以\0结尾,而双引号""会自动在末尾帮我们添加一个\0,在Visual Studio中我们可以通过 调试-窗口-监视来查看变量


strlen() --求字符串的长度 头文件是string.h
#include <string.h>
int main() {
int a = strlen("abc");
printf("%d\n", a);
return 0;
}
运行结果:3
在我们用printf()函数以字符串形式进行输出时,只有遇到'\0'才会停止输出!
当我们在使用{}字符串的定义的 方式时我们一定要记得加上字符串的结束标志,虽然我们有时候用不到,但这却是我们必须要做的,这也是一个合格的程序员必备的素养,当然,有的时候确实并不需要加上,在新手期间,建议还是加上。
五、转移字符
\n换行int main(){printf("hello worldn");return 0; }
int main(){printf("hello world\n");return 0; }
\0 字符串的结尾
printf("abcd0fe"); 输出结果为 abcd0fe
printf("abcd\0fe"); 输出结果为abcd
| 转义字符 | 意义 | ASCI码值(十进制) |
| \a | 响铃 | 007 |
| \b | 退格 | 008 |
| \f | 换页 | 012 |
| \n | 换行 | 010 |
| \r | 回车 | 013 |
| \t | 水平制表 | 009 |
| \v | 垂直制表 | 011 |
| \\ | 代表一个反斜杠\ | 092 |
| \' | 表示单引号 | 039 |
| \" | 表示双引号 | 034 |
| \? | 表示问号 | 063 |
| \0 | 空字符 | 000 |
| \ddd | 1到3位八进制数代表的任意字符 | 三位八进制 |
| \xhh | 十六进制代表的任意字符 | 十六进制 |
六、注释
C语言注释有两种
-
/* 注释内容 */
-
//注释内容
相关文章:
C语言基础2
一、变量的作用域 局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程。 int main() { { int a 10; printf("a %d\n", a); } printf("a %d\n", a); //报错位置 return 0; } 这里会发生报错: “a”: 未声明的…...
Linux系统上安装kafka
目录 1. 安装Java环境 2. 下载和解压Kafka 3. 配置Kafka 4. 启动ZooKeeper和Kafka 5. 测试Kafka 6. 停止服务 7.常见问题 1. 安装Java环境 Kafka依赖Java运行环境(JDK 8或更高版本): # 安装OpenJDK(推荐) yum…...
09 HarmonyOS NEXT 仿uv-ui Tag组件开发教程系列(三)
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 Tag组件实战应用与最佳实践1. 复杂场景应用1.1 标签筛选系统 2. 性能优化实践2.1 状态管理优化2.2 渲染性能优化 3. 实用功能扩展3.1 拖拽…...
【每日学点HarmonyOS Next知识】网页Scheme拉起应用、列表刷新、Web下载文件、根据子元素
1、HarmonyOS 目前 app 中是否支持网页Scheme拉起应用? 支持deeplink的,网页中添加按钮引导用户拉起应用。网页端直接提示打开应用按钮绑定点击事件window.open(tzptest://www.xxxxx.com?urlXXX)>,点击该按钮,打开网页web端收到的url为t…...
如何排查MySQL是否走索引
博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...
AF3 curry1函数解读
AlphaFold3 data_transforms 模块的 curry1 函数实现了一个经典的柯里化 (currying) 技术,具体是固定函数 f 的所有参数,除了第一个参数。换句话说,curry1 允许你在调用函数时,先提供除了第一个参数之外的所有参数,然后返回一个新的函数,这个新函数只等待第一个参数。 …...
摄像头应用编程(三):多平面视频采集
文章目录 1、前言2、环境介绍3、步骤4、应用程序编写5、测试5.1、编译应用程序5.2、运行应用程序 6、总结 1、前言 在查看摄像头类型时,大致可以分为两类:Video Capture 和 Video Capture Multiplanar。 本次应用程序主要针对类型为Video Capture Multi…...
【GoTeams】-2:项目基础搭建(下)
本文目录 1. 回顾2. Zap日志3. 配置4. 引入gprc梳理gRPC思路优雅关闭gRPC 1. 回顾 上篇文章我们进行了路由搭建,引入了redis,现在来看看对应的效果。 首先先把前端跑起来,然后点击注册获取验证码。 再看看控制台输出和redis是否已经有记录&…...
02-双指针-A-B 数对
题目 链接:P1102 A-B 数对 - 洛谷 思路 问题场景想象 我们可以把这个问题想象成在一个排队的队伍里找符合特定身高差的人对。给定的数列里的每个数就好比队伍里每个人的身高,而差值 C 就是我们要找的身高差。我们的目标是找出队伍里所有身高差恰好是 …...
2025年Cursor最新安装使用教程
Cursor安装教程 一、Cursor下载二、Cursor安装三、Cursor编辑器快捷键(1) 基础编辑快捷键(2) 导航快捷键(3) 其他常用快捷键 一、Cursor下载 Cursor官方网站(https://www.cursor.com/ ) 根据自己电脑操作系统选择对应安装包 二、Cursor安装 下载完成后…...
Modbus TCP/IP 与 RS-485 接口的兼容性
Modbus TCP/IP 和 RS-485 接口的 直接兼容性 不存在,因为两者分属不同的网络层次(TCP/IP 基于以太网,RS-485 是物理层接口),但通过 协议转换和网络架构设计 可以实现互联互通。以下是详细的技术解析与实现方案: 一、协议差异对比 特性Modbus TCP/IPModbus RTU(RS-485)物…...
快速部署:在虚拟机上安装 CentOS 7 的详细步骤
CentOS是一个开源的基于Red Hat Enterprise Linux (RHEL) 的Linux发行版,它的主要目的是提供一个与RHEL相似的操作系统但不包含RHEL的商业支持和服务,完全免费。主要面向那些希望在企业环境中使用稳定、可靠的Linux系统但又不想支付RHEL许可证费用的用户…...
better-sqlite3之exec方法
在 better-sqlite3 中,.exec() 方法用于执行包含多个 SQL 语句的字符串。与预编译语句相比,这种方法性能较差且安全性较低,但有时它是必要的,特别是当你需要从外部文件(如 SQL 脚本)中执行多个 SQL 语句时。…...
NDT 代价函数
SLAM 中的 NDT 代价函数 在SLAM(同步定位与地图构建)中,NDT(Normal Distributions Transform)是一种常用的点云配准方法。NDT代价函数用于评估点云配准的质量。以下是NDT代价函数的详细介绍: NDT 代价函数…...
【有啥问啥】深入浅出:大模型应用工具 Ollama 技术详解
深入浅出:大模型应用工具 Ollama 技术详解 引言 近年来,大型模型(Large Models,LLMs)技术突飞猛进,在自然语言处理、计算机视觉、语音识别等领域展现出强大的能力。然而,部署和运行这些庞大的…...
【AI训练】如何提高LLM的训练速度
提高大型语言模型(LLM)的训练速度需要从算法优化、硬件加速、软件框架和基础设施等多个层面综合考虑。以下是一些关键方法,按类别分类说明: --- 一、硬件优化 1. 分布式训练 - 数据并行(Data Parallelism)…...
利用opencv_python(pdf2image、poppler)将pdf每页转为图片
1、安装依赖pdf2image pip install pdf2image 运行.py报错,因为缺少了poppler支持。 2、安装pdf2image的依赖poppler 以上命令直接报错。 改为手工下载: github: Releases oschwartz10612/poppler-windows GitHub 百度网盘: 百度网盘…...
大数据测试总结
总结测试要点: 参考产品文档,技术文档梳理以下内容 需求来源 业务方应用场景 数据源,数据格转,数据产出,数据呈现方式(数据消亡史),数据量级(增量,全量&am…...
pytorch高可用的设计策略和集成放大各自功能
在使用 PyTorch 编写模型时,为确保模型具备高可用性,可从模型设计、代码质量、训练过程、部署等多个方面采取相应的方法,以下为你详细介绍: 模型设计层面 模块化设计 实现方式:将模型拆分成多个小的、独立的模块,每个模块负责特定的功能。例如,在一个图像分类模型中,可…...
容器 /dev/shm 泄漏学习
容器 /dev/shm 泄漏的介绍 在容器环境中,/dev/shm 是一个基于 tmpfs 的共享内存文件系统,通常用于进程间通信(IPC)和临时数据存储。由于其内存特性,/dev/shm 的大小是有限的,默认情况下 Docker 容器的 /de…...
Redis面试常见问题——集群方案
Redis集群方案 在Redis中提供的集群方案总共有三种 主从复制 哨兵模式 分片集群 主从复制 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。 主从数据同步原理 单节点Redis的并发能力是有…...
企业级Python后端数据库使用指南(简略版)
总述 企业级应用通常需要考虑扩展性、安全性、性能等因素。数据库的使用也不例外。连接数据库的第一步应该是建立连接,但企业环境中可能不会每次操作都新建连接,而是使用连接池来管理,这样可以提高效率,减少资源消耗。例如&#x…...
Qt:day4
一、作业 1:实现绘图的时候,颜色的随时调整; 2:追加橡皮擦功能; 3:配合键盘事件,实现功能; 当键盘按 ctrlz 的时候,撤销最后一次绘图。 【Headers / widget.h】ÿ…...
随机播放音乐 伪随机
import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 伪随机播放音乐*/ public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已经播放过的歌曲列表private Map<String…...
vue3之echarts仪表盘
vue3之echarts仪表盘 效果如下: 版本 "echarts": "^5.5.1" 核心代码: <template><div ref"chartRef" class"circle"></div> </template> <script lang"ts" setup>…...
将PDF转为Word的在线工具
参考视频:外文翻译 文章目录 一、迅捷PDF转换器二、Smallpdf 一、迅捷PDF转换器 二、Smallpdf...
MWC 2025|紫光展锐联手美格智能发布5G通信模组SRM812
在2025年世界移动通信大会(MWC 2025)期间,紫光展锐携手美格智能正式推出了基于紫光展锐V620平台的第二代5G Sub6G R16模组SRM812,以超高性价比方案,全面赋能合作伙伴,加速5G规模化应用在各垂直领域的全面落…...
js操作数组的常用方法
1. 遍历方法 1.1 forEach 作用:遍历数组中的每个元素,并对每个元素执行回调函数。 是否改变原数组:不会改变原数组。 返回值:undefined。 1.1.1 基本用法 const arr [1, 2, 3]; arr.forEach((item) > console.log(item …...
前端基础之ajax
vue-cli配置代理服务器解决跨域问题 我们可以使用一个代理服务器8080,Vue项目8080发送请求向代理服务器8080发送请求,再由在理服务器转发给后端服务器 首先需要在vue.config.js中配置代理服务器 const { defineConfig } require(vue/cli-service) modul…...
Android车机DIY开发之软件篇(二十)立创泰山派android编译
准备工作 sudo apt-get update sudo apt-get install git -y sudo apt install repo -ysudo apt-get install python2.7sudo apt-get install python3sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /u…...
