![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言进阶之路
文章平均质量分 68
小轩在不在哟
新人,求大家多多指教支持~~
展开
-
【C语言】宏offsetof的模拟实现 (计算结构体中某变量相对于首地址的偏移)
首先我们应该特别留意 : offsetof 是一个宏,并非是一个函数 !宏offsetof的介绍 :参数:第一个是结构体类型名称,第二个是结构体成员名返回类型:size_t无符号整形引用的头文件:<stddef.h>offsetof的使用举列 :#include <stddef.h>struct Stu // 注释为相对于起始位置的偏移量{ int a;//0~3 char c;//4 //5~7 double d;//8~15};in.原创 2021-10-17 20:03:40 · 1114 阅读 · 1 评论 -
C语言模拟实现库函数 atoi
库函数atoi介绍 :作用:将字符串中的数字转换成整形数字参数:字符串指针返回类型:int整形模拟实现代码如下:#define _CRT_SECURE_NO_WARNINGS 1// 模拟实现库函数atoi#include <stdio.h>#include <assert.h>#include <ctype.h>#include <limits.h>enum State{ VALID, INVILID};.原创 2021-10-17 16:18:39 · 239 阅读 · 0 评论 -
程序运行背后的那些事 ~ 【程序的编译(预处理操作)+链接】
????前言 : 写了那么久的代码。我们大家有没有思考过:在VS环境下按下 ctrl+f5 让代码运行起来的时候程序背后是如何进行这一系列的操作呢 ?各个符号是如何替换的?注释的消失是在哪个阶段 ? 今天,博主就带着大家一起来探讨这个问题 ~ 也是作为C语言专栏的最后一篇博文(收官之文hh),话不多说,下面我们开始文章 ~???? 博主gitee 代码仓库链接: https://gitee.com/yang-xinshang????CSDN主页 :https://blog.csdn.net/xqs19原创 2021-10-16 18:53:21 · 284 阅读 · 10 评论 -
【C语言】一文搞定 “文件操作”
???? 前言 : 一般我们写的C语言程序,在退出以后其中的数据便会消失,再也读取不到;比如上文写的通讯录程序,如果不加以文件操作在退出以后数据便会丢失,而这对于需要数据保存的一些程序来说又是致命的;今天我们就来解决这个问题,实现退出程序以后数据可以保存起来,下次打开程序数据可以写入,而实现这些我们就需要了解-> “文件操作”目录1.关于文件的介绍1.1为什么使用文件?1.2 文件的分类1.3 文件名2.文件指针的介绍3.文件的打开和关闭4.文件的顺序读写4.1 fgetc 函数介绍4.2 fput原创 2021-10-12 18:22:33 · 429 阅读 · 3 评论 -
【C语言】一文搞定如何计算结构体的大小----结构体内存对齐规则
要搞定如何正确地计算一个结构体的大小,我们就要深刻理解结构体内存对齐规则;结构体内存对齐规则:1.结构体的第一个成员永远在结构体起始位置偏移量为0的位置;2.结构体成员从第二个成员开始,总是放在偏移量为一个对齐数的整数倍处;对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。 Linux----没有默认对齐数;VS---默认对齐数是8;3.结构体的总大小必须是各个成员的对齐数中最大那个对齐数的整数倍;4.如果嵌套了结构体的情况:嵌套的结构体对齐到自己原创 2021-09-25 20:47:55 · 284 阅读 · 1 评论 -
字符串 & 内存 函数的介绍与模拟实现
1.字符串函数的介绍与模拟实现1.1 strlen的介绍与模拟实现功能:获取字符串的长度返回类型 : sizt_t 也就是 unsigned int 无符号整型参数 : const 修饰的 char* 指针模拟实现:1.2 strcpy的介绍与模拟实现功能: 拷贝一个字符串返回类型:char* 指针参数 : char* 指针的目的地 , const char* 指针的源头模拟实现 :1.3 strcmp的介绍与模拟实现功能 :比较两个字符串 , 比较的是字符串的内容 ,原创 2021-09-23 23:23:34 · 176 阅读 · 2 评论 -
【C语言】 strstr查找子字符串函数以及模拟实现讲解
strstr 字符串查找函数 返回的是相同子串的第一个出现的的地址返回类型是 char* 返回的是相同子串的第一个出现的的地址参数是 const char* str1 ,const char* str2 ;const 因为是查找是否相同,所以防止被改变,用const修饰头文件是 #include <string.h>返回类型:这些函数都返回一个指向strChar在string中第一次出现的指针,如果strCharSet没有在string中出现,...原创 2021-09-17 14:02:10 · 1098 阅读 · 1 评论 -
一道指针压轴笔试题讲解 (进阶指针必看)
今天我来给大家讲解一道指针压轴笔试题,同时也是进阶指针知识必会的一道题。相信大家在认真梳理清楚这道题后,对指针的知识了解定会更上一层楼 ~话不多说,上题目 :请问程序输出结果是什么 ?相信大家一拿到题目必定是懵逼的,下面我就来给大家仔细讲解梳理一遍这道压轴笔试题 :讲解:要做出这道题,我们必须先掌握几个知识点 :1.这个代码的意思是 把4个常量字符串的首字符地址存到c数组里面,每个元素的类型是 char*2.把char*的地址再存到类型为char** ...原创 2021-09-11 17:22:23 · 144 阅读 · 0 评论 -
[C语言] qsort 快速排序函数讲解
qsort库函数作用:执行快速排序其需要引用的头文件是 : <stdlib.h>qsort 默认(按照 e1,e2 顺序)排的是升序其中每个参数解释是:关于比较两个元素的函数 :如果e1小于e2,则返回小于0的数如果e1等于e2, 则返回等于0的数如果e1大于e2, 则返回大于0的数实列举列1:使用qsort库函数实现对数字的升序排序#include <stdio.h>#include <stdlib.h...原创 2021-09-01 23:21:35 · 979 阅读 · 0 评论 -
大小端字节序介绍以及判断当前环境字节序的程序【C语言】
文章目录1.大小端字节序介绍2. 判断当前环境的字节序程序1.大小端字节序介绍首先我们先来介绍什么是大端字节序,什么是小端字节序:大小端字节序指的是数据在电脑上存储的字节顺序小端字节序存储:把一个数字的低位字节的内容,存放在内存的低地址处。把高位字节的内容存放在内存的高地址处。大端字节序存储:把一个数字的低位字节的内存,存放在内存的高地址处。把高位字节的内容存放在内存的低地址处。下面我们来看两幅图:我们在调试内存窗口取出a的地址,发现低地址(EFA14)寸的是低位字节(44),高地址(原创 2021-08-09 20:37:46 · 467 阅读 · 0 评论 -
深度剖析 浮点型 在内存中的存储【C语言】
????回顾 :在C语言的整个学习中,对数据在内存中的存储这一进阶知识点学习是非常重要的。对于整型数据在内存中的存储,我们不难理解。(整型数据在内存中存储是以二进制的补码形式存储的,改动数据也是对补码进行操作,再将补码转换为对应的原码进行打印输出)。计算机中的整数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位负整数的三种表示方法各不相同。原码直接将二进制按照正负数的形式翻译成二进制就可以。反码将原码的符号位不变,原创 2021-08-09 20:17:08 · 345 阅读 · 3 评论