C细节补充

发布时间:2026/9/12 18:38:58

C细节补充 1负数取模的规则是计算得到的数值和除数和被除数的符号无关最后结果的符号由被除数的符号进行决定2运算符不可以比较两个字符串是否相等因为比较的是两者的地址 就算是常量字符串也不行。4,realloc进行缩容缩容过小会造成数据截断丢失数据。特殊reallocptr,0释放原来的内存返回NULL.不建议这样使用释放内存还是使用free和delete3,输出的结果为123456%5表示最少输出5个字符。不足5位通过空格进行补充。超过5位就正常输出。4如果print()有n个占位符 就有n1个参数n个占位符对应n个参数加上字符串就是n1个参数。5scanf中的占位符%s表示读取一个字符串遇到空白就停止6scanf处理数值占位符时会自动跳过空白字符包括空格制表符换行符。处理字符占位符时不会忽略空白字符空格换行符制表符占位符类型是否跳过空白字符说明数值型%d%f%lf%x等✅自动跳过忽略输入前的空格、制表符、换行符字符串%s✅自动跳过忽略前导空白读到空白字符停止字符%c❌不跳过读取当前第一个字符包括空格和换行符%d无论中间有多少个空格都会跳过应为他读取的是数字%c表示读取字符空白字符也是字符所以会读取输入的A前面是一个/n,a1读取了/n,a2读取了“A”.打印时先打印一个换行符再打印字符A补充1此处可见没有省略空白字符导致c2为空格7变长数组VLAC99之前没有变长数组在定义和初始化时数组[]中的数必须是常数但是在C99之后引了变长数组后只要变量提前已经赋一个常数值就可以在[]填入一个变量。特殊的C不支持变长数组。MSVC编译器微软的MSVC编译器至今没有完整支持C99标准中的变长数组VLA它主要支持的是C标准C标准本身不支持变长数组。变长数组(VLA)的注意事项_1,VLA不能进行初始化int n 10;int arr[n] {0} X原因数组在编译时就要进行初始化但是此时变量n不存在。变量n在运行时才存在。_2VLA不能时全局变量和静态变量原因全局变量和静态变量在程序启动前内存就分配完成了大小是一个编译期常量。而VLA是运行时变量_3当变量n过大时arr[n]可能导致栈溢出int n 1000000;int arr[n]; //栈溢出风险_4变长数组的大小一旦确定就无法进行改变。8,sizeof(acX sizeof(acYacX中的字符比acY中的字符多一个“\0,所以更大strlen(acX)和strlen(acY)无法进行比较因为strlen记录的时”\0”前的字符个数。acY中没有\0,所以strlen(acY)是一个随机值。9函数的实参不止可以是变量也可以是常数表达式函数返回值数组元素结构体成员宏定义等等。10左对齐和右对齐右对齐:例%2d 右对齐不足的补充空格 超过2位原样输出%2f同理右对齐不足两位用空格补充。%.2d 和 %02d右对齐不足的补充0超过2位原样输出%.2f精度控制为2位小数点后保留两位。左对齐%-2d 左对齐不足的用空格进行补充超过2位原样输出11,数组的逆置void reserve(int arr[],int size) { int left 0; int right size - 1; while (left right--) { int tmp arr[left]; arr[left] arr[right]; arr[right] tmp; } }12判断素数#include stdbool.h #include math.h //实现判断素数的函数 bool is_prime(int k) { //处理特殊情况--负数01都不是素数 if (k 1) { return false; } int n sqrt(k); //防止每次都计算sqrt(k) for (int i 2;i n;i) { if (k % i 0) { return false; } } return true; }13轮转数组解法一再创建一个数组回头拷贝void rotate(int* nums, int numsSize, int k) { //使用额外的数组最后拷贝回去 int arr1[numsSize]; for(int i 0;inumsSize;i) { //ki%numsSize //这个式子不仅考虑超出时循环的情况 //还考虑了不同的初始位置的影响 arr1[(ki) % numsSize] nums[i]; } //拷贝回去 for(int i 0;inumsSize;i) { nums[i] arr1[i]; } }时间复杂度和空间复杂度都为O(n)解法二翻转数组原理//交换两个元素值 void Swap(int* a,int* b) { int t *a; *a *b; *b t; } //翻转数组 void reserve(int num[],int start,int end) { while(startend)//不能在这里直接对start和end--因为后面还要使用 { Swap(num[start],num[end]); start; end--; } } void rotate(int* nums, int numsSize, int k) { //解决循环 k % numsSize; //翻转数组写法 reserve(nums,0,numsSize-1); reserve(nums,0,k-1); reserve(nums,k,numsSize-1); }14打印水仙花数//打印0~100000之间的水仙花数 //常见问题--计算之后丢失原来的值要进行提前赋值保存 int main() { for (int i 0;i 100000;i) { int c i; int tmp c; if (c 0) { printf(0 ); continue; } //记录位数 int a 0; while (c 0) { c c / 10; a; } //计算之后c丢失原始值 int count 0; int j a; while (j--) { //得到每一位--每次求最后一位 int n tmp % 10; tmp / 10; count pow(n, a); } if (count i) { printf(%d , count); } } return 0; }15不创建额外变量实现两个数的交换//交换两个变量 //方法一--使用异或操作符 void Judgement1(int* a, int* b) { //a ^ 0 a a ^ a 0 *a *a ^ *b; *b *a ^ *b; *a *a ^ *b; } //加减交换法 void Judgement2(int* a, int* b) { *a *a *b; *b *a - *b; *a *a - *b; } int main() { int a 3; int b 5; printf(%d %d\n, a, b); Judgement2(a, b); printf(%d %d, a, b); }
延伸阅读

更多相关文章

2026/9/3 22:54:25

SH9认知几何学视角下人类推理过程的测地线理论建模

世毫九认知几何学视角下人类推理过程的测地线理论建模 作者:方见华 单位:世毫九实验室 核心摘要 在世毫九(SH9)认知几何学的理论框架下,人类逻辑推理的本质,是认知主体的认知状态在高维黎曼认知流形上沿测地…

2026/9/12 12:01:53

physx-rs实战案例:用Rust实现弹跳球物理模拟的完整指南

physx-rs实战案例:用Rust实现弹跳球物理模拟的完整指南 【免费下载链接】physx-rs 🎳 Rust binding for NVIDIA PhysX 🦀 项目地址: https://gitcode.com/gh_mirrors/ph/physx-rs physx-rs是NVIDIA PhysX物理引擎的Rust绑定库&#xf…

2026/9/11 8:34:59

3分钟搭建AI数据标注平台:Label Studio全流程实战指南

3分钟搭建AI数据标注平台:Label Studio全流程实战指南 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio 当…

2026/9/12 18:35:58

第二日总结:高效能人士的结构化复盘方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 18:35:58

Windows部署vLLM实战:WSL2+Docker运行Qwen3-8B-FP8全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 18:35:58

浏览器端本地视频压缩技术解析与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 18:35:58

遥感图像语义分割实战:U-Net 多光谱适配与显存优化

简介:这是一套面向计算机、人工智能及遥感相关专业学生与教师的高分毕业设计实践资源,聚焦U-Net网络在遥感图像语义分割任务中的完整实现,适用于课程设计、毕设参考与深度学习入门进阶。资源包含68个文件,总计46.93MB,…

2026/9/12 18:30:58

研发自给自足:用Canva免费版快速搞定App上架宣传图

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码