![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
无边界ROS2
精通python、c语言、c++,研究ROS1、ROS2.
展开
-
C语言中,通过引用传函数形参
C语言中,通过引用传递函数形参,可以直接修改实参的值,提高代码的效率和灵活性。我上面通过传两个引用的形参,达到可以直接修改的目的。原创 2024-06-28 16:24:13 · 134 阅读 · 0 评论 -
使用malloc申请char类型的空间
使用malloc函数可以在堆上动态申请指定字节数的内存空间,返回的是指向申请内存的指针。上面中在使用malloc需要注意的是,注意类型转换。原创 2024-06-28 16:18:52 · 177 阅读 · 0 评论 -
typedef的4种常见用法
本例中,buf变量其实是个含一元素的数组,由于数组名本身就是第一个一级成员的指针(这个知识可以参考我的另一篇博文:《二维数组名、二维数组名取地址、二级指针》),而该数组的成员又是个结构体,因此,我们可以直接用数组名指向结构体的成员__jb。这种技巧有什么好处:例子中,1、定义buf变量,就相当于定义了一个结构体变量,而且buf就是这个结构体实体的指针,2、想把结构体的地址传给某个函数时,不必写取地址符了,buf本身就是地址。//定义了一个指针类型pArr_t,该类型的指针可以指向含5个int元素的数组。原创 2024-06-06 12:07:37 · 982 阅读 · 0 评论 -
C++中,引用基本用法
在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递(pass-by-reference),它也存在于其他一些编程语言中,并不是c++的发明。变量名实质上是一段连续内存空间的别名,是一个标号(门牌号)程序中通过变量来申请并命名内存空间。通过变量的名字可以使用存储空间。原创 2024-06-05 16:49:02 · 137 阅读 · 0 评论 -
C++中,const的使用和说明
const单词字面意思为常数,不变的。它是c/c++中的一个关键字,是一个限定符,它用来限定一个变量不允许改变,它将一个对象转换成一个常量。c++语言中,const修饰全局变量,默认是内部链接属性。c语言中,const修饰全局变量,默认是外部链接属性。2、局部const:直接修改失败;2、局部const:直接修改失败;1、全局const:直接和间接修改都失败。1、全局const:直接和间接修改都失败。原创 2024-06-05 15:37:45 · 153 阅读 · 0 评论 -
C++中的三目运算符
比如:int temp = 10;temp在内存中有地址,10没有,但是可以Read到它的值。c++语言三目运算表达式返回值为变量本身(引用),为左值,可以赋值。在c++中可以放在赋值操作符左边的是左值,可以放到赋值操作符右面的是右值。左值为Lvalue,L代表Location,表示内存可以寻址,可以赋值。右值为Rvalue,R代表Read,就是可以知道它的值。有些变量即可以当左值,也可以当右值。原创 2024-06-05 14:50:13 · 155 阅读 · 0 评论 -
C语言中的三目运算符
c语言三目运算表达式返回值为数据值。原创 2024-06-05 14:42:57 · 70 阅读 · 0 评论 -
C++中的bool类型
标准c++的bool类型有两种内建的常量true(转换为整数1)和false(转换为整数0)表示状态。这三个名字都是关键字。原创 2024-06-05 14:40:12 · 135 阅读 · 0 评论 -
C++中,命名空间的使用
4、空间名可取别名,取别名后取别名前和取别名后的空间名都可以用。6、命名空间中可以放各种函数、变量等等。5、命名空间中的各种变量都是可以进行运算的。2、命名空间是可嵌套的。3、是可以追加变量的。1、命名空间只能命名在全局空间中。原创 2024-06-05 11:11:04 · 241 阅读 · 0 评论 -
C++中, ::作用域运算符
通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。可以看到a直接用了全局定义的a = 100。原创 2024-06-05 09:55:36 · 170 阅读 · 0 评论 -
简单的入门C++程序
【代码】简单的入门C++程序。原创 2024-06-05 09:30:05 · 218 阅读 · 0 评论 -
C语言中,同时写入、读取文件操作
将四个学学生的成绩及个人姓名、编号id,创建并存入一个.txt文件中,并且能够同时在终端读取到.txt文件中的内容。以可读、可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留。在这里,我使用的是w+,可同时实现可写、可读操作。以可读、可写的方式打开文件(不创建新文件、若文件不存在则报错)以追加方式打开文件,在末尾添加内容,若文件不存在则创建文件。原创 2024-06-04 18:38:51 · 522 阅读 · 0 评论 -
C语言中,文件操作之写入操作
代码中逻辑:首先尝试以写入模式打开名为F:/te1st.txt的文件,并将文件指针赋值给变量p。如果文件打开失败(即文件指针p为NULL),则打印出错误信息(包括系统提供的错误消息)并暂停程序的执行。如果文件成功打开,则使用fclose函数关闭文件,释放资源。最后,打印消息“输入成功”表示操作成功。我这里利用相对路径写法实现。写入一个F:/te1st.txt到项目文件路径中的F文件夹中。原创 2024-06-03 19:35:15 · 209 阅读 · 0 评论 -
c语言中,结构体变量交换改写为堆空间申请内存
在main函数中,声明了一个包含3个sss结构体的数组num1,并使用malloc函数动态分配了一个大小为3的sss结构体数组num2。在这里我实现的功能为:输入三个人的信息,每个人的信息分别为姓名和三个成绩,我分别计算三个人的成绩和,并通过经典的三杯水案例完成对三个人的成绩从小到大的排列打印。使用另一个for循环打印出排序后的学生姓名和成绩,并使用free函数释放动态分配的内存,防止内存泄漏。定义了一个结构体struct1,其中包含学生的姓名(name)和三门课程的成绩数组(scores)。原创 2024-06-03 19:11:49 · 537 阅读 · 0 评论 -
C语言中,strchr()函数的使用方法
首先我声明了*str_c来接收strchr()函数的返回结果,代码实现了在str_a数组中找到第一个‘s’字符及其后面的所有字符,strchr()函数与strstr()函数的区别是:strchr()函数找的是单字符'x'及其后面的字符,strstr()函数找的是字符串“xxxx”及其后面的字符。可以看到函数的返回值是一个char类型的指针;成功:返回第一次出现的c地址。c:匹配字母(字符):在字符串s中查找字母c出现的位置。原创 2024-05-30 08:57:42 · 382 阅读 · 0 评论 -
C语言中,strstr()函数的用法
代码中,我声明了*str_c的指针字符串来接收strstr()函数的返回值,并利用strstr()函数,在str_a中找出了第一个“fff”开头的后面所有字符。可以看到,函数的返回值为char类型的指针;在字符串haystack中查找字符串needle出现的位置。成功:返回第一次出现的needle地址。haystack:源字符串首地址。needle:匹配字符串首地址。原创 2024-05-30 08:45:00 · 196 阅读 · 0 评论 -
C语言中,sscanf()函数的使用方法
上面代码中,实现了使用sscanf()函数将str_a中的"10 30"直接在程序中分别输入给了a,b ,其中,需要特别注意的是,“10 30”,间存在空格,所以输入的时候“%d %d”也需要统一保留空格。从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。format:字符串格式,用法和scanf()一样。成功:参数数目,成功转换的值的个数。str:指定的字符串首地址。可以看到,是int类型。原创 2024-05-30 08:30:01 · 272 阅读 · 0 评论 -
C语言中, strncpy()函数的使用方法
功能:把src指向字符串的前n个字符复制到dest所指向的空间中,成功:返回dest字符串的首地址。从结果可以看到,n =4,总共拷贝了四个字符。可以看到,函数的反回值为char类型的指针。dest:目的字符串首地址。n:指定需要拷贝字符串个数。src:源字符首地址。原创 2024-05-29 17:37:19 · 332 阅读 · 0 评论 -
C语言中,strcpy()函数的使用方法
代码开始定义了两个字符数组str1和str2,其中str2初始化为中文字符串“哈洛·沃尔德”。strcpy函数的返回值是目标数组str1的地址,这个地址被存储在指针num中。之后,通过printf函数打印str1和num指向的内容,因为num指向str1,所以这两行输出是相同的,都会显示“哈洛·沃尔德”。整个程序的执行结果是在控制台显示两行“哈洛·沃尔德”,然后暂停,等待用户按任意键后结束。成功:返回dest字符串的首地址。可以看到,函数的返回值是一个char类型的指针。dest:目的字符串首地址。原创 2024-05-29 17:29:24 · 134 阅读 · 0 评论 -
C语言中,以hello world 字符串为例子,反转字符串
循环内部发生的是一系列字符交换操作:首先,使用一个临时变量 s 保存 str1 指向的字符,然后将 str2 指向的字符赋值给 str1 指向的位置,最后将 s 中的字符(原始的 str1 指向的字符)赋值给 str2 指向的位置。交换完成后,str1 向前移动一个位置,str2 向后移动一个位置,以便在下次循环中交换下一对字符。str1 初始化为指向数组的第一个字符,而 str2 初始化为指向数组最后一个字符(注意这是字符串的最后一个字符,不是结束符 \0)。原创 2024-05-29 17:14:04 · 261 阅读 · 0 评论 -
c语言中,以aaaabbbbaaaa字符串为了例,判断是否为回文字符串
接下来使用条件语句检查 a 的值,根据返回的结果,使用 printf 输出字符串是或者不是回文字符串的消息。str1 初始化为指向数组的起始位置,而 str2 初始化为指向数组的最后一个字符(即字符串的结尾,不包括空字符 \0)。我代码展示了如何使用C语言编写一个函数 num 来判断给定的字符串是否是一个回文串,即正向和反向读取都是相同的字符串。只有当所有对应的字符都被成功比较,也就是 str1 和 str2 的比较完成后,循环结束,函数返回 1,表示字符串是回文。原创 2024-05-29 17:07:04 · 171 阅读 · 0 评论 -
C语言中,字符指针字符串中,某种字符串出现的次数计算方法
为了继续搜索后续的字符串,str_c 指针前移至之前找到的 str_b 子字符串的末尾,即 str_c += strlen(str_b)。在 main 函数中,定义了两个字符串 str_a 和 str_b,并将 str_b 在 str_a 中的出现次数通过调用 str_time 函数计算得到。我的代码定义了一个用来计算一个字符串在另一个字符串中出现次数的函数 str_time,并在 main 函数中调用该函数来计算指定子字符串在主字符串中的出现次数。原创 2024-05-29 11:58:08 · 178 阅读 · 0 评论 -
C语言中,使用指针方法把指针字符串赋给char数组
mystrcpy 函数是一个简单的字符串拷贝函数,其功能类似于标准库函数 strcpy。当源字符串的结束符 '\0' 被检测到时,循环终止,此时在目标字符串的当前位置也添加一个结束符 '\0',确保了字符串正确结束。在 main 函数中,定义了一个源字符串 src,初始化为 "hello world 1234",以及一个目标数组 tar,长度为100个字符,足以存储源字符串。我的代码是一个C语言程序,它包含了一个自定义的字符串拷贝函数 mystrcpy 和一个主函数 main,用于展示这个函数的工作原理。原创 2024-05-29 09:47:51 · 203 阅读 · 0 评论 -
C语言中,连接两个字符串方法
【代码】C语言中,连接两个字符串方法。原创 2024-05-28 19:37:27 · 235 阅读 · 0 评论 -
C语言中的函数
在C语言中,函数是模块化程序设计的基本单元,允许将代码分解为可重用的部分。我展示了在C语言中函数的基本用法,包括函数的声明和定义、调用、参数和返回值、递归以及函数指针的应用。原创 2024-05-28 13:02:06 · 415 阅读 · 0 评论 -
C语言中,指针的使用
在上面,我展示了指针在C语言中的基本用法,包括声明、取地址、解引用、指针和数组、指针和函数、动态内存分配以及指针和结构体的应用。当使用C语言中的指针时,一些基本的用法和示例可以帮助更好地理解其用法。原创 2024-05-28 11:56:54 · 539 阅读 · 0 评论