C语言基础
文章平均质量分 75
行稳方能走远
日日行,不怕千万里;常常做,不怕千万事
展开
-
C语言指针——从底层原理到应用
一、前言二、变量与指针的本质1. 内存地址2. 32位与64位系统3. 变量4. 指针变量5. 操作指针变量5.1 指针变量自身的值5.2 获取指针变量所指向的数据5.3 以什么样的数据类型来使用/解释指针变量所指向的内容三、指针的几个相关概念1. const属性2. void型指针3. 空指针和野指针3.1 空指针:不指向任何东西的指针3.2 野指针:地址已经失效的指针四、指向不同数据类型的指针1. 数值型指针2. 字符串指针3. 指针数组与数组指针3.1 指针数组原创 2023-11-26 09:42:54 · 390 阅读 · 0 评论 -
C语言如何跳出多重循环(break语句仅仅只能跳出一层循环)
前言一、题目示例二、解决方法1.使用goto语句2.使用状态标志总结原创 2023-05-13 10:01:58 · 1857 阅读 · 0 评论 -
浮点数在计算机中存储方式、十六进制(HEX)和浮点类型(float、double)转换
浮点数在计算机中存储方式浮点类型转换为十六进制方法1:用地址用指针方法2:用共用体方法3:使用memcpy十六进制转换为浮点类型原创 2023-04-02 10:01:09 · 11319 阅读 · 0 评论 -
C语言可变参数
什么是可变参数可变参数列表构成实现原理(va_list系列变参宏实现变参函数)代码示例函数通过固定参数指定可变参数个数,打印所有变参值函数定义一个结束标记(-1),调用时通过最后一个参数传递该标记,打印标记前所有变参值注意事项总结原创 2022-12-18 17:10:48 · 269 阅读 · 0 评论 -
断言(assert)的用法
断言(assert)的用法原创 2022-11-13 22:26:45 · 942 阅读 · 0 评论 -
C语言的枚举类型(Enum)
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。...............原创 2022-06-04 20:19:49 · 1847 阅读 · 0 评论 -
C语言常见编译错误及分析
目录 绪论第一安装错误:[1]Error spawning cl.exe[2]fatal error C1083: Cannot open include file:第二打开编译器失败,提示不能打开第三cannot execute program解决方案第四连接Link.exe错误解决方案第五 error C2143: syntax error : missing ')' before 'return'解决方案第六涉及`scanf`输出结果为空的错误解决方案第七error C2065: 'a' : u..原创 2021-09-18 17:49:27 · 26252 阅读 · 0 评论 -
C语言extern关键字(去使用外部全局变量、函数)
1、引用同一个文件中的变量2、引用另一个文件中的变量3、引用另一个文件中的函数利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。原创 2021-08-13 18:26:21 · 8546 阅读 · 0 评论 -
双链表嵌套的简单学生信息管理系统
摘自:实现双链表嵌套的简单学生信息管理作者:三速何时sub20发布时间: 2020-07-20 10:44:40网址:https://blog.csdn.net/weixin_44234294/article/details/107458155?spm=1001.2014.3001.5501题目链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。场景:一个年级,相当链表A该年级5个班,每个班5个人,相当于链表B1–B5做一个学生成绩管理系统学生成绩有语文 数学 英语.原创 2021-04-09 16:18:50 · 788 阅读 · 2 评论 -
基于C语言Ncurse库和链表的简单贪吃蛇小游戏
摘自:进程间的五种通信(linux系统编程)作者:三速何时sub20发布时间: 2020-07-26 12:09:38网址:https://blog.csdn.net/weixin_44234294/article/details/107547576?spm=1001.201...转载 2021-04-06 23:28:59 · 285 阅读 · 2 评论 -
段错误、内存溢出、内存泄漏(区别)、堆溢出、栈溢出
内存泄漏内存泄漏(memory leak)是指由于疏忽或错误造成了程序未能释放掉不再使用的内存的情况。内存泄漏并非指内存在物理意义上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的分类:(1)堆内存泄漏(heap leak):堆内存指的是程序在运行中根据通过malloc/new等从堆中分配的一块内存,使用完成后必须通过调用相对应的free/delete释放掉。如果程序设计的错误导致这部分内存没有被释放掉,那么此后这块内存将不会被使用,就会产原创 2021-08-06 15:52:42 · 2665 阅读 · 0 评论 -
多级指针和静动态内存的跨函数访问
参考:多级指针(静动态内存的跨函数访问)作者:枕上发布时间:2021-07-15 00:27:17网址:https://blog.csdn.net/jinchi_boke/article/details/118724993?spm=1001.2014.3001.5501目录多指针初认识:动态内存和多级指针的跨函数访问动态内存和静态内存的比较:静态内存不可以跨函数访问:动态内存跨函数访问:多指针初认识:#include <stdio.h>#include <stdlib.h.原创 2021-07-25 20:12:18 · 203 阅读 · 0 评论 -
C语言中指针的地址和内容
C语言中指针的地址和内容原创 2021-08-07 12:31:57 · 1477 阅读 · 0 评论 -
# 和 ## 的区别
参考:# 和 ## 的区别作者:枕上发布时间:2021-07-25 08:23:40网址:https://blog.csdn.net/jinchi_boke/article/details/119076280?utm_source=app&app_version=4.11.0&code=app_1562916241&uLinkId=usr1mkqgl919blen#:1、最常见的是 #不会替换参数,只替换其所对应的字符2、 把宏参数变成一个字符串;##:把两个宏参.原创 2021-07-25 19:41:01 · 3429 阅读 · 0 评论 -
位运算(按位与、按位或、异或、取反)以及原码、反码、补码
运算符的计算按位与运算符 [ & ]按位或运算符 [ | ]异或运算符 [ ^ ]取反运算符 [ ~ ]计算机原码、反码、补码机器数真数原码反码补码有了原码为什么要使用反码和补码原创 2021-07-18 14:41:12 · 1866 阅读 · 0 评论 -
C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)
memchr 在内存块中定位字符的位置还有相似函数memrchr和rawmemchrmemcmp 把两个内存块的内容进行比较。memcpy 复制内存块的内容memmove 移动内存块中的内容memset 以字节方式填充内存块strcat 把一个字符串后追加到另一个字符串后strchr 在字符串中查找一个字符的第一个位置指针strcmp 比较两个字符串(ASCII)strcoll 比较两个字符串(根据指定的 LC_COLLATE)strcpy 复制字符串strcspn 在一个字符串中查找另原创 2021-07-18 12:04:27 · 858 阅读 · 0 评论 -
#ifndef, #define, #endif的作用
目录作用示例作用#ifndef它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义、文件包含、条件编译)中的一种——条件编译。在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。但是在c语言中,#ifndef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifndef宏定义,多个c文件包含同一个h文件还是会出现全局变原创 2021-07-12 10:55:41 · 509 阅读 · 0 评论 -
C语言面试高频问题:自己代码实现字符串相关的常用API
参照:C语言面试高频问题:自己代码实现字符串相关的常用API作者:图触靓发布时间: 2020-08-08 13:31:33网址:https://blog.csdn.net/bhbhhyg/article/details/107878102转载 2021-07-12 09:19:02 · 241 阅读 · 0 评论 -
结构体与共用体(联合体)
目录结构体什么是结构体?定义结构体定义结构体变量:匿名结构体:实现给结构体取别名结构体嵌套联合体结构体什么是结构体?用来存储不同类型的(数组存储的是同种类型数据)数据定义结构体struct 结构体名字{ 需要存储的类型或者数组 };例:struct student { char name[20]; int id; };实际中,保存的数据一般不会是同一种类型。而结构体的大小也不是成员类型大小的简单相加。需要考虑原创 2021-07-06 19:13:37 · 1439 阅读 · 0 评论 -
回调函数 —— 借助中间通用函数(形参里有函数指针,实现函数注册)调用不同的回调函数 (多态/分层)
简单理解回调函数你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做 触发回调事件,店员给你打电话叫做 调用回调函数,你到店里去取货叫做 响应回调事件。原创 2021-08-08 16:06:37 · 732 阅读 · 0 评论 -
结构体对齐计算方式
法则一:结构体成员的偏移量必须是成员大小的整数倍(数组除外)法则二:结构体大小必须是所有成员大小的整数倍(数组、结构体除外)带数组的结构体大小计算带结构体的结构体大小计算带联合体的结构体大小计算原创 2021-06-27 19:24:48 · 511 阅读 · 1 评论 -
C语言中字符串和字符数组的区别
(1)C语言中,没有字符串类型但可以用字符数组模拟字符串。(2)C语言中,字符串是以’\0’作结尾字符。(3)C语言中,字符串常量本质上是一个无名的字符数组原创 2022-11-21 21:05:42 · 4222 阅读 · 1 评论 -
五大板块(5)——字符串
一、字符串的定义方式与输出二、字符串的结尾是 ’ \0 ’所以用strlen计算有效字符的长度strlen使用(1)注意字符数组当做字符串来用?三、字符串操作常用APIputs、gets —— 输入与输出不安全的gets对比get和fgetsstrcpy、strncpy —— 拷贝strcmp —— 比较strchr、strstr —— 检索strlwr、strupr —— 大小写转换strcat —— 拼接strtok —— 分割(作为重点介绍)strtok容易出错的秘密sp原创 2021-04-05 13:04:38 · 288 阅读 · 0 评论 -
五大板块(4)——链表
一、对比链表与数组同样是存放一串数据,链表与数组的区别在哪里?链表方便增删二、链表的创建之静态创建:最简单的创建链表的动态遍历:统计节点个数与查找节点三、插入节点与删除节点从指定节点的后方插入新节点在指定节点前方插入新节点删除指定节点四、链表的创建之动态创建头插法创建链表尾插法创建链表原创 2021-04-05 12:39:20 · 189 阅读 · 0 评论 -
五大板块(3)—— 结构体
结构体的三种定义赋值方法结构体数组结构体指针(在指针中已有介绍)结构体的综合运用????学生成绩处理小问题:不会释放指针,或者需不需要释放?结构体大小计算方法原创 2021-04-05 12:25:54 · 214 阅读 · 0 评论 -
五大板块(2)—— 指针
一、地址的引入概念地址长啥样?二、指针变量的引入三、指针分类型与指针偏移量整型指针,字符指针函数指针(重点)无参无返的函数指针有参有返的函数指针结构体中的函数指针规律总结数组指针(少用)指针数组(少用)结构体指针(重点)定义赋值调用与指针偏移实际应用例子野指针是什么野指针是怎样生成的?有什么危害如何避免malloc与内存泄漏指针类型小测试四、指针也可以作为数组传入的形式参数五、为什么要使用指针?(1)节省内存(2)在子函数中修改被传递过来的对象(3)动态原创 2021-04-05 12:05:29 · 256 阅读 · 1 评论 -
五大板块(1)—— 数组的定义,赋值与应用
数组的定义及访问完全初始化,部分初始化,不初始化关于数组赋值,还需要注意:Ⅰ、大多情况下,数组在定义时必须确定大小Ⅱ 、数组的定义在下面三种情况下不需要指明大小Ⅲ、也不能直接给数组赋值字符串数组的简单应用1到100的和(数组的赋值)比较5个数的大小(数组的遍历)数组作为子函数的形式参数以及数组元素个数计算原创 2021-04-05 11:47:59 · 3805 阅读 · 0 评论 -
c语言基础回顾 —— 其他知识点
变量命名规范驼峰命名法switch case 一般用法示例typedef关键字形式参数的作用域及生存周期左/右结合性:从左 / 右开始执行运算printf 里的 a++,++a,真的有鬼!!但都放在printf中,要注意了做嵌入式软件你必须要掌握的volatile原创 2021-04-05 11:16:52 · 242 阅读 · 0 评论 -
C语言函数日记
2.1.函数概述一2.2.函数概述二2.3.函数无返回参数,无返回值带一个参数2.4.函数形式参数作用域及生存期2.5.函数形式参数和局部变量的异同点2.6.有一个参数有返回值的函数2.7.有两个参数的函数,实现加法运算2.8.实现两数据加减乘除2.9.两数加减乘除,可选算法2.10.前面的大综合,小计算器2.11.函数总结原创 2021-04-08 15:03:06 · 322 阅读 · 0 评论 -
C语言入门日记
1.1.C语言搭建及system函数1.2.C语言的基础框架解释1.3.C程序变量1.4.C程序的输入输出1.5.新手变成没有思路怎么搞1.6.选择语句之if&else1.7.选择语句的嵌套1.8.选择语句之成绩等级判断1.9.多分支选择:switch&case&break&default1.10.循环控制语句之while1.11.循环控制语句之for1.12.do…while的补充原创 2021-04-08 14:01:44 · 306 阅读 · 1 评论