c语言拾遗4

GD32F303调试小记(一)之USART(接收中断、接收空闲中断+DMA、发送DMA) 前言 之前写了GD32F103调试小记(二)之USART(接收中断、接收空闲中断+DMA、发送DMA)一文。这次我们来看看GD32F303的USART是如何配置的,结合这两篇文章,相信大家GD32的USART配置流程会十分熟悉。 DMA 能大大减轻CPU负荷的东西,建议场景合适的情况下,都去用DMA功能。 USART 一种串行通信协议, ... 阅读详情

上面是我进过n次修改后的程序,在写这个程序中我遇到了下面几个问题

ptr到底指向哪里,虽然有(*s1 != '/0') s1++ ,那么s1最后指向的是'/0'

又 while(*s2 != '/0') *ptr ++ = *s2 ++;那么ptr又是指向的哪里,很明显ptr不指向的是'/0' 因此最后应该*ptr = '/0',而不是*(ptr + 1) = '/0';

 

错误二 ptr在循环 *ptr != '/0'的时候 *ptr的值为's' ,因此 *ptr ++ = *s2++ 之后 *ptr的值为多少喃 ?再加上一个'/0',来 我告诉你答案是“”;那么s1为多少?注意 s2将其内容复制到s1后面的空间了,那么s1后面的空间又是什么喃,有高手是这样回答的:

 

高地址

环境变量
命令行参数
指向环境变量的指针
指向命令行参数的指针
程序名称(即main)
main参数等

低地址

 下面有一组测试数据:

char d[1024] = "this is aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
 char s[2048] =" a string ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggx";
 那么 上面的程序就会报错

所以我采用了另外一种方法:

该方法就ok 不过可能要数组会溢出,这里还有个注意的地方

刚开始 我采用的是这样的方法:

int n = strlen(s1) + strlen(s2);

char dest[n+1];该方法在编译时就不能通过

 

 

将大小写互换:

写这个程序的主要目的是将一个字面值赋值一个char*指针,那么该指针将能不被作为const类型;如果要修改字面值,必须将字符指针转换为char数组

Java分布式流处理,flink+kafka实现电商网站个性化商品推荐系统 在现代电商环境中,用户每天都会浏览大量商品页面,而这些行为数据中蕴藏着丰富的信息。通过分析用户的浏览历史、购买记录以及对特定商品的兴趣程度,我们可以为用户提供更加个性化的商品推荐,从而提升用户体验和转化率。为了实现实时的个性化推荐,我们需要构建一个能够快速处理并响应用户行为变化的数据处理管道。 阅读详情

相关推荐

Linux下自动化解析q7签名文件的有效期与时间戳

本文详细介绍了在Linux环境下自动化解析q7签名文件有效期与时间戳的方法。通过编写高效脚本,开发者可以批量提取签名时间信息,验证签名有效性,并集成到CI/CD流程中。文章提供了完整的脚本实现,包括错误处理、批量处理功能,并解决了常见环境问题,特别适用于国产操作系统如UOS的开发场景。

weixin_30872499的博客 520

C++拾遗--多线程:C语言多线程的引入

C++拾遗--多线程:C语言多线程的引入 前言 多线程是编程中的一个重要内容。多核时代使多线程成为一种可能,显然,一件事情多个人干,效率一定会提升。下面来看下C语言中是如何使用多线程的。 正文 1.CreateThread 先来看一个实例

CCPP Blog 4716

C# 实现鼠标轨迹录制与回放自动化功能(附源码)

通过本文的介绍,相信大家已经掌握了鼠标轨迹录制与回放功能的实现方式。该功能在自动化测试和重复性工作中具有重要应用价值。后续可以进一步优化,增加更多扩展功能,形成一个完整的自动化工具。

weixin_72139050的博客 1756

printf("%d,%d\n", *ptr, *(ptr++))

#include <stdio.h> int main() { int arr[] = { 6, 7, 8, 9, 10 }; int *ptr = arr; *(ptr++) += 123; printf("%d,%d\n", *ptr, *(ptr++)); return 0; } 程序运行结果为: 8,7 1.解释:*(ptr++) += 123这句

小博客 3411

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 543

python操作git推送自己分支并合并主分支(持续优化该工具)

python git

qq_44707265的博客 862

C语言拾遗(四):分析switch语句机制---上篇

打算用两篇blog分享一下switch语句的机制。 C语言作为底层开发最常用的语言,要理解C语言的运行机制,阅读对应的汇编代码是非常有帮助的。我会在下篇分析一下汇编中的switch。 这次是上篇,就当作一个热身吧,看看你是否已经了解switch语句是怎么执行的。 翠花,上代码。 阅读下面的代码,请问,从语法上看,有多少处错误? 1 #include <stdio.h> ...

weixin_30781631的博客 133

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1297

C语言拾遗-C语言运算符

摘要:C语言运算符种类极其繁多,这既是它的优点,也是它的缺点。C语言运算符按照功能来分,至少可以分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符六大类;按照优先级来分,从高到低可分为15级;若按照所带操作数的个数来分,又可分为:单目、双目和三目运算符;而按照运算顺序来看,又有左结合性和右结合性之分。

lxtqyh的博客 711

VisionMaster脚本调试(VS)

使用VS调试VisionMaster 脚本

yu_fujiang的专栏 3295

GEE:连续变化检测 CCDC 提取断点信息(干扰时间、干扰幅度、干扰次数)

本文将介绍在 Google Earth Engine (GEE) 平台上连续变化检测与分类(Continuous Change Detection and Classification, CCDC)提取扰动时间、干扰幅度、干扰次数信息,并下载到本地的代码。

养乐多的博客 1945

C语言拾遗-C语言关键字

摘要:ANSI C标准C语言共有32个关键字。在C99标准中,新增了inline,restrict,_Bool,_Complex,_Lmaginary五个关键字,在C11标准中,新增了_Alignas,_Alignof,_Atomic,_Static_assert,_Noreturn,_Thread_local,_Generic七个关键字。

lxtqyh的博客 813

基于STM32L4XX 、HAL库的STSPIN32G4三相无刷直流电机(BLDC)驱动应用C语言程序设计

/ 设置PWM模式为6步换相。│PA5-7 ├── SPI ────►│SCK/MISO│ │ 三相桥 │。– 2路电机控制高级定时器(16位,支持6路 PWM 通道)// 60度电气周期对应转速 = 60/(极对数 * 6 * 周期)// 电气角度(0-3599)

PP_Cottage的博客 147

C语言拾遗

C语言拾遗,用了这么多年的c语言,发现很多地方还是不知道,不少地方还是似是而非

团长的专栏 648

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C语言拾遗-C语言预处理

摘要:C程序的源代码中可包括各种编译指令,这些指令称为预处理指令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。ANSI标准定义的C语言预处理程序包括下列命令:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等。所有预处理命令均以符号#开头,下面分别加以介绍。

lxtqyh的博客 341

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【跟着小甲鱼学C语言】拾遗

拾遗 1.static和const区别 const的意思是“常量”,也就是说变量一旦被定义就不能被修改,即是说变量是一个右值。 static的意思有两层。第一层是当它作用在函数名或者全局变量上时,这时static关键字会把这两者的extern链接属性修改为internal。第二层是当static作用在局部变量上时,存放这个局部变量的内存空间在被定以后就不会释放,哪怕重新定义这个变量也不行,直到程序...

Ordinary_Bird的博客 1249

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C语言拾遗-符号集

C语言符号集包括:英文字母、数字和一些有特定含义的标点符号。任何C程序都是由C的符号集里的符号构成具有一定含义的语句,再由这些语句组成程序。

lxtqyh的博客 1814

C语言拾遗-C语言关键字-auto

摘要:auto在C语言中为四个存储类型关键字之一,C语言中使用auto关键字声明自动变量。

lxtqyh的博客 3113

C语言拾遗-C语言数据类型-函数

函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码。函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码。函数还可以接收数据,并根据数据的不同做出不同的操作,最后再把处理结果反馈给我们。

lxtqyh的博客 1656

C语言拾遗-C语言关键字-return

摘要:函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过return语句返回。

lxtqyh的博客 940

C语言拾遗-C语言数据类型-指针

所谓指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。不过,人们往往不会区分两者的概念,而是混淆在一起使用,在必要的情况下,大家也要注意区分。

lxtqyh的博客 1028

C语言拾遗-C语言数据类型-数组

数组(Array)就是一些具有相同类型的数据的集合,这些数据在内存中依次挨着存放,彼此之间没有缝隙。C语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

lxtqyh的博客 4304

拾遗C语言

答:a = 14, b = 5, c = 9 解析:解答这道题需要充分消化这一节课我们所学习的内容,首先 b = 3(因为赋值运算符的优先级比逗号运算符高);c = b++ + 5,c = 8(因为 b++ 是先使用变量 b 的值,再将自身加一);a 最后的值是 ++c + ++b,此时 c = 8,b = 4,则 a = 9 + 5,最后 a = 14, b = 5, c = 9。因此第一进入循环判断时,取出的值是0,并不符合循环的条件,因此循环一次都没有被执行。答:a、b、c 都是"l-value"。

weixin_63833170的博客 184

嵌入式软件工程师3--C语言拾遗(1)

一字节为八个二进制位。 strlen:strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。 sizeof:sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等。功能是获得保证能容纳实现所建立的最大对象的字节大小。 字符数组及它的两种初始化 ...

chao-@的博客 1594

C语言拾遗-标识符

标识符可以简单地理解为一个名字,用来表示变量名、常量名、函数名以及数组名等。

lxtqyh的博客 1028
上一篇: c语言拾遗3
下一篇: C练习
AlexTiger0
博客等级 码龄17年 10粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值