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”: 未声明的…...
在springboot项目中引入log4j 2.x
步骤 1:排除 Spring Boot 默认的日志依赖 Spring Boot 默认使用 Logback 作为日志框架,所以需要先排除它,在 pom.xml(如果是 Maven 项目) 中添加如下配置: <dependency><groupId>org.springf…...
大模型推理显存优化:从KV Cache压缩到量化策略实战
引言:显存瓶颈的困境 随着ChatGPT等大语言模型的广泛应用,模型推理过程中的显存占用问题日益凸显。以典型的Llama2-13B模型为例,单次推理就需要占用超过6GB显存,严重制约了服务吞吐量和硬件利用率。本文将深入探讨大模型推理中的…...
使用阿里云 API 进行声音身份识别的方案
使用阿里云 API 进行声音身份识别的方案 阿里云提供 智能语音交互(智能语音识别 ASR) 和 声纹识别(说话人识别) 服务,你可以利用 阿里云智能语音 API 进行 说话人识别,实现客户身份验证。 方案概述 准备工…...
03 面向对象
1、封装 1.1 属性和行为 #include <iostream> using namespace std;// 面向对象三大特性:封装、继承、多态/* 封装的语法:class 类名 { 访问权限:属性(成员变量)行为(成员函数) }; */class Hero {/…...
【YOLOv12改进trick】多尺度大核注意力机制MLKA模块引入YOLOv12,实现多尺度目标检测涨点,含创新点Python代码,方便发论文
🍋改进模块🍋:多尺度大核注意力机制(MLKA) 🍋解决问题🍋:MLKA模块结合多尺度、门控机制和空间注意力,显著增强卷积网络的模型表示能力。 🍋改进优势…...
java 初学知识点总结
自己总结着玩 1.基本框架 public class HelloWorld{ public static void main(String[] args){ }//类名用大写字母开头 } 2.输入: (1)Scanner:可读取各种类型,字符串相当于cin>>; Scanner anew Scanner(System.in); Scan…...
File文件和目录
一、文件和目录相关概念 计算机文件(File):以计算机硬盘为载体存储在计算机上的信息集合,可以是文本(.txt)、图片(.jpg、.png、.jpeg)、视频(.mp4)、程序(.exe)等,文件一般有拓展名,表示文件的类型。 文件…...
C++ 数据结构详解及学习规划
C++数据结构详解及学习规划 一、C++常用数据结构详解与示例 以下是C++中核心数据结构的分类及具体实现示例: 1. 线性数据结构 a. 数组(Array) • 定义:存储固定大小、同类型元素的连续内存结构。 • 特点:快速随机访问(O(1)),但插入/删除效率低(O(n))。 • 应用场…...
Mac同时安装jdk8和jdk17,默认选择jdk8
在Mac上同时安装JDK 8和JDK 17,并设置默认版本为JDK 8,可以按照以下步骤操作: 一、下载并安装JDK 8和JDK 17 下载JDK 8 访问Oracle JDK下载页面。在“Java SE Archive Downloads”部分,找到JDK 8的下载链接。选择适合您Mac芯片类…...
PTA 7-6 列出连通集
题目详情: 给定一个有 n 个顶点和 m 条边的无向图,请用深度优先遍历(DFS)和广度优先遍历(BFS)分别列出其所有的连通集。假设顶点从 0 到 n−1 编号。进行搜索时,假设我们总是从编号最小的顶点出…...
计算机毕业设计SpringBoot+Vue.js疗养院管理系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
分布式系统设计(架构能力)
一、微服务架构 服务治理 Nacos 注册中心(AP模式) CAP选择:Nacos 默认采用 AP 模式(可用性 分区容忍性),通过心跳检测实现服务健康管理。服务发现:客户端定时拉取服务列表,支持权重…...
CR电路介绍
CR电路(RC电路)介绍 CR电路(电阻-电容电路)由电阻(R)和电容(C)组成,是电子系统中的基础模块,广泛用于信号处理、定时、滤波等场景。以下是其核心功能、实现方…...
Redis数据结构,渐进式遍历,数据库管理
1.Redis的其他数据结构 前面我们主要讲述了Redis中比较常用的集中数据结构String,List,Hash,Set,Zset,但这并不代表Redis只用这几种数据结构还有如Streams,Geospatial,Hyperloglog,…...
动态规划01背包问题系列一>最后一块石头的重量II
这里写目录标题 题目分析:状态表示:状态转移方程:初始化:填表顺序:返回值:代码呈现:优化版本:代码呈现: 题目分析: 状态表示: 状态转移方程&#…...
GCC编译
目录 gcc编译c语言流程: 步骤 编译器 预处理 编译 汇编 链接 完整编译 多文件编译 其他常用gcc选项 gcc编译c语言流程: 预处理大写-E 编译为大写-S ,生成汇编代码文件 汇编为小写-c 链接这里可以加-o 重命名a.out这个可…...
康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…...
Jetson NV 上解决 PyQt5 “Could not load the Qt platform plugin ‘xcb‘“ 错误
在 Jetson NV 上运行 PyQt5 应用程序时,可能会遇到以下错误: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed…...
计算机毕业设计Python+DeepSeek-R1大模型微博的话题博文及用户画像分析系统 微博舆情可视化(源码+ 文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
文件上传靶场(1--9关)
实验环境: 1,upload的靶场环境可以去GitHub上自行查找 2,打开小皮面板的nginx和数据库 3,将文件上传的靶场部署到本地: 放到小皮的phpstduy_pro的www下面 小提示: 另外如果你用的是php7的版本建议将版…...
2025年渗透测试面试题总结-字某某动-安全研究实习生(二面)(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 字某某动-安全研究实习生(二面) 1. 护网行动中的核心工作 2. 防护层级选择&…...
LeetCode 965题详解 | 单值二叉树的“一统江湖”:如何判断所有节点值全等?
题目如下: 解题过程如下: 示例中,即便这个结点是空结点也返回true。 若根结点不为空,那么先判断它的左孩子结点里的值是否与根结点里的值相等(这里要先确保左孩子不为空,因为左孩子结点里的值是解引用操作…...
Java阻塞队列深度解析:高并发场景下的安全卫士
一、阻塞队列的核心价值 在电商秒杀系统中,瞬时涌入的10万请求如果直接冲击数据库,必然导致系统崩溃。阻塞队列如同一个智能缓冲带,通过流量削峰和异步解耦两大核心能力,成为高并发系统的核心组件。 二、Java阻塞队列实现类对比 …...
使用 Docker 部署 RabbitMQ 并实现数据持久化
非常好!以下是一份完整的 Docker 部署 RabbitMQ 的博客文档,包含从安装到问题排查的详细步骤。你可以直接将其发布到博客中。 使用 Docker 部署 RabbitMQ 并实现数据持久化 RabbitMQ 是一个开源的消息队列系统,广泛应用于分布式系统中。使用…...
VsCode 快捷键备忘
移动光标及选择文本 Ctrl ← / → :以单词为单位移动游标Home / End:光标移到行首/行位Ctrl Home / End:光标移到文件首和文件尾Ctrl Shift \:在匹配的分隔符之间跳转 配对的分隔符 是指分隔代码元素的字符,比如字…...
蓝桥杯备考:动态规划路径类DP之矩阵的最小路径和
如题,要求左上角到右下角的最短路径,我们还是老样子按顺序做 step1:确定状态表示 f[i][j]表示(1,1)到(i,j)的最短距离 step2 :推导状态表达方程 step3:确定填表顺序,应该是从上到下,从左到右 step4:初始化 step5 找结果&#…...
大模型工程师学习日记(十五):Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析)
1. datasets 库核心方法 1.1. 列出数据集 使用 d atasets 库,你可以轻松列出所有 Hugging Face 平台上的数据集: from datasets import list_datasets# 列出所有数据集 all_datasets list_datasets()print(all_datasets)1.2. 加载数据集 你可以通过 l…...
Spring Boot 异步编程
文章目录 一、异步方法的使用1. 开启异步支持2. 定义异步方法3. 调用异步方法踩坑记录心得体会 二、线程池配置1. 自定义线程池2. 使用自定义线程池踩坑记录心得体会 三、异步任务的监控与管理1. 日志记录2. 异常处理3. 线程池监控踩坑记录心得体会 在现代应用程序开发中&#…...
golang并发编程如何学习
《掌握 Golang 并发编程的通关秘籍》 在当今的编程世界中,Golang 并发编程正以其独特的魅力和强大的能力吸引着众多开发者。然而,对于许多小伙伴来说,如何学好这门技术却成了一个头疼的问题。别担心,今天就让我来为大家揭开 Gola…...
Django 中,Form 和 ModelForm的用法和区别
在 Django 中,Form 和 ModelForm 是用于处理表单数据的两种主要方式。它们的主要区别在于是否与模型(Model)直接关联。以下是它们的用法、区别以及高级用法的详细说明: 一、Form 的使用 1. 基本用法 Form 是一个独立的表单类,不与任何模型直接关联。适用于需要手动定义字…...
SQL_语法
1 数据库 1.1 新增 create database [if not exists] 数据库名; 1.2 删除 drop database [if exists] 数据库名; 1.3 查询 (1) 查看所有数据库 show databases; (2) 查看当前数据库下的所有表 show tables; 2 数据表 2.1 新增 (1) 创建表 create table [if not exists…...
Linux网络编程
网络:不同主机,进程间通信 目的 1, 解决主机之间的硬件层面的互联互通 2,解决主机间软件层面的互联互通 IP地址:区分不同主机(软件地址) MAC地址:硬件地址 端口号:区分同…...
算法·搜索
搜索问题 搜索问题本质也是暴力枚举,一般想到暴力也要想到利用回溯枚举。 排序和组合问题 回溯法 去重问题:定义全局变量visited还是局部变量visited实现去重? 回溯问题 图论中的搜索问题 与一般的搜索问题一致,只不过要多…...
前端跨域设置 withCredentials: true
在做登录认证的时候,会出现请求未登录的情况,查看请求头的时候发现并没有把登录时的cookie设置到第二次的请求头里面。查看资料才知道跨域请求要想带上cookie,必须要在ajax请求里加上 withCredentials: true 再次访问发现请求头可以携带cook…...
使用 Arduino 和 Wi-Fi 控制 RGB LED
通过 WiFi 的 Arduino RGb LED 控制器 ,在本文中,我们将介绍下一个基于 IOT 的项目 - 使用 Wi-Fi 的 RGB LED 闪光灯。在这里,我们使用 Arduino 和 ESP8266 Wi-Fi 模块通过 Android 手机通过 Wi-Fi 控制 RGB LED 的颜色。 在这个 RGB Flash…...
html+js 轮播图
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>轮播图示例</title><style>/* 基本样式…...
蓝桥杯 Excel地址
Excel地址 题目描述 Excel 单元格的地址表示很有趣,它使用字母来表示列号。 比如, A 表示第 1 列, B 表示第 2 列, Z 表示第 26 列, AA 表示第 27 列, AB 表示第 28 列, BA 表示第 53 列&#x…...
相机几何与标定:从三维世界到二维图像的映射
本系列课程将带领读者开启一场独特的三维视觉工程之旅。我们不再止步于教科书式的公式推导,而是聚焦于如何将抽象的数学原理转化为可落地的工程实践。通过解剖相机的光学特性、构建成像数学模型、解析坐标系转换链条,直至亲手实现参数标定代码࿰…...
SCI期刊推荐 | 免版面费 | 计算机领域:信息系统、软件工程、自动化和控制
在学术研究领域,选择合适的SCI期刊对科研成果的传播与认可至关重要。了解SCI期刊的研究领域和方向是基础,确保投稿内容与期刊主题相符。同时,要关注期刊的影响因子和评估标准,选择具有较高影响力和学术认可度的期刊。阅读期刊的投…...
Cryptography 与 PyCryptodome 源码级解析
目录 Cryptography 与 PyCryptodome 源码级解析一、引言二、Cryptography 库源码解析2.1 Cryptography 库概述与设计理念2.2 核心模块与数据流分析2.2.1 目录结构与模块划分2.2.2 以 AES-GCM 模式为例的加解密实现2.2.3 源码示例解析 2.3 错误处理与边界检测 三、PyCryptodome …...
std::string的模拟实现
目录 string的构造函数 无参数的构造函数 根据字符串初始化 用n个ch字符初始化 用一个字符串的前n个初始化 拷贝构造 用另一个string对象的pos位置向后len的长度初始化 [ ]解引用重载 迭代器的实现 非const版本 const版本 扩容reserve和resize reserve resize p…...
GPU、NPU与LPU:大语言模型(LLM)硬件加速器全面对比分析
引言:大语言模型计算基础设施的演进 随着大语言模型(LLM)的快速发展与广泛应用,高性能计算硬件已成为支撑LLM训练与推理的关键基础设施。目前市场上主要有三类处理器用于加速LLM相关任务:GPU(图形处理单元…...
常见限流算法
限流是指在高并发、大流量请求的情况下,限制新的流量对系统的访问,以保证系统服务的安全性。常见的限流算法及其详细介绍如下: 计数器算法(Fixed Window Counter) 原理:使用一个固定时间窗口内的计数器来…...
美国国家航空航天局(NASA)的PUNCH任务
地球浸没在来自太阳的物质流中。这种被称为太阳风的流正在冲刷我们的星球,造成令人叹为观止的极光,影响太空中的卫星和宇航员,甚至影响地面基础设施。 美国宇航局 (NASA) 的 PUNCH(统一日冕和日球层旋光仪 Polarimeter to Unify the Corona and Heliosphere)任务将首次…...
REST API前端请求和后端接收
1、get请求,带"?" http://localhost:8080/api/aop/getResult?param123 GetMapping("getResult")public ResponseEntity<String> getResult(RequestParam("param") String param){return new ResponseEntity<>("12…...
OpenBMC:BmcWeb构造connect对象
OpenBMC:BmcWeb server.run-CSDN博客 server在接收了tcp连接请求后,会构造一个ConnectionType对象,然后通过post调度,运行该对象的start函数 1.ConnectionType类型 其实也就是using ConnectionType = Connection<Adaptor, Handler>;类型 由于ConnectionType实例化于…...
ESLint 深度解析:原理、规则与插件开发实践
在前端开发的复杂生态中,保障代码质量与规范性是构建稳健、可维护项目的基石。ESLint 作为一款强大的代码检查工具,其默认规则与插件能满足多数常见需求,但面对特定团队规范或项目独特要求,自定义 ESLint 插件便成为有力的扩展手段…...
ios使用swift调用deepseek或SiliconFlow接口
调用SiliconFlow API 注册并获取API密钥:打开硅基流动平台官网Models,进行注册和认证。登录后,进入首页,点击左上角三个横杠,选择API密钥,生成密钥并复制。配置第三方应用:打开安装好的Chatbox…...
贪心算法一
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…...