![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言必知必会
编程反思录
公众号[不会编程的程序圆]
关注即可提高编程能力
展开
-
[C 陷阱与缺陷] (六) 预处理器
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourse一 预处理器在严格意义上的编译过程开始之前,C 语言预处理器首先对程序代码作了必要的转换处理。因此,我们运行的程序实际上并不是我们所写的程序。预处理器使得编程者可以简化某些工作,它的重要性可以由两个主要的原因说明(当然还有一些次要原因,此处就不赘述了)。第一个原因是,我们也许会遇.原创 2020-07-09 17:59:49 · 238 阅读 · 1 评论 -
[C 陷阱与缺陷] (五) 库函数
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourseC语言中没有定义输入/输出语句,任何一个有用的 C 程序(起码必须接受零个或多个输入,生成一个或多个输出)都必须调用库函数来完成最基本的输入和输出操作。ANSI C 标准毫无疑问地意识到了这一点, 因而定义了一个包含大量标准库函数的集合。从理论上说,任何一个 C 语言实现都应该提供这些标.原创 2020-06-29 20:22:02 · 434 阅读 · 0 评论 -
【C 陷阱与缺陷】(四)连接
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourse一 链接0. 什么是连接器C 语言的一个重要思想就是分别编译(separate compilation),即若干个源程序可以在不同的时候单独进行编译,然后在恰当的时候整合在一起。但是,连接器一般是与 C 编译器分离的,它不可能了解 C 语言的诸多细节。**连接器的工作原理:**连.原创 2020-06-29 20:21:11 · 305 阅读 · 0 评论 -
【C 陷阱与缺陷】(三)语义陷阱
【C 陷阱与缺陷】(三)语义陷阱码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourse0. 指针与数组C 语言中数组与指针这两个概念之间的联系密不可分。关于数组:C 语言中只有一维数组,而且数组大小必须在编译期就作为一个常数确定下来。数组元素可以是任何类型的对象,也可以是另外一个数组。(C99 允许变长数组)对于一个数组,我们原创 2020-06-16 15:07:13 · 222 阅读 · 1 评论 -
【C 陷阱与缺陷 】(二)词法“陷阱”
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourse零0. 理解函数声明请思考下面语句的含义:(*(void(*)())0)()前面我们说过 C 语言的声明包含两个部分:类型和类似表达式的声明符。最简单的声明符就是单个变量:float f, g;由于声明符和表达式的相似,我们可以在声明符中任意使用括号:float ((f.原创 2020-06-06 09:02:10 · 275 阅读 · 2 评论 -
【C 陷阱与缺陷 】(一)词法陷阱
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新代码,练习上传至:https://github.com/hairrrrr/C-CrashCourse一 内容0. =不同于==当程序员本意是作比较运算时,却可能无意中误写成了赋值运算。1.本意是检查 x 与 y 是否相等:if(x = y) break;实际上是将 y 的值赋值给了 x ,然后再检查该值是否为 0 。2.本意是跳过文件中的空白字符:while(c.原创 2020-06-05 10:55:41 · 241 阅读 · 1 评论 -
【C进阶】动态内存管理
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新思维导图目录文章目录思维导图目录正文零 简单了解内存区域划分一 动态内存函数1.1 malloc例1:malloc1.2 free1.3 calloc例2:calloc1.4 realloc例3:realloc例3.1:realloc1.5 malloc 造成内存泄漏的...原创 2020-03-28 01:20:15 · 345 阅读 · 0 评论 -
C 语言 运算符 全网最全整理
C 语言 运算符 全网最全整理码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新思维导图目录文章目录思维导图目录正文一 算数操作符二 移位操作符三 位操作符四 赋值操作符五 复合赋值符六 单目操作符七 关系操作符八 逻辑操作符九 条件操作符十 逗号表达式11 其他1. [] 下标引用操作符2. ( ) 函数调用操作符...原创 2020-03-28 01:16:03 · 819 阅读 · 0 评论 -
C语言 文件 看这一篇就够了
文件格式化的输入输出printf% [flag] [width] [.prec] [hlL] typescanf% [flag] typeprintfflag 属性一般与 width 属性结合Flag含义-左对齐+在正数放 +0在前面填充 0例1int main(void) { printf("%9d\n", 123); p...原创 2020-03-28 01:10:48 · 494 阅读 · 0 评论 -
C进阶习题二
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新答案已上传至 Github ,链接在文末,欢迎 star ~1. 实现库函数 atoi2. 单身狗问题一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。一个数组中只有一个数字是出现一次,其他所有数字都出现了两次。编写一个...原创 2020-03-24 13:10:41 · 351 阅读 · 0 评论 -
C进阶习题一
C进阶习题一码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新答案已上传至我的 Github 上,地址在文末,欢迎 star1.打印杨辉三角11 11 2 11 3 3 11 4 6 4 1 ...2. 字符串旋转写一个函数,判断一个字符串是...原创 2020-03-24 12:58:43 · 256 阅读 · 0 评论 -
【C进阶】内存对齐
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新零 前言自定义类型也就是:结构体,联合和枚举。这部分的基础知识在前面的文章中我们也详细的讲过。点击阅读我们这一节主要来讲一相关的些比较重要的知识。一 结构体1. 内存对齐Ⅰ)引入struct S1{ char c1; int i; char c2;};上...原创 2020-03-24 10:05:03 · 276 阅读 · 0 评论 -
【C进阶 三】字符串函数与内存函数
码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新思维导图目录文章目录思维导图目录正文序 老朋友们myStrlen & myStrcat & myStrcpyMyStrcmp始 新朋友们1. strstr实现2. strtok3. memcpy实现思考4. memmove重叠的含义实现5. memcmp...原创 2020-03-23 12:44:46 · 348 阅读 · 1 评论 -
【C进阶】练习题(一)
码字不易,对你有帮助 点赞/转发/关注 支持一下作者1.打印杨辉三角11 11 2 11 3 3 11 4 6 4 1…2. 字符串旋转写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABC...原创 2020-03-07 22:27:15 · 600 阅读 · 1 评论 -
C语言指针笔试题这么变态?我可能白学C语言了!带详解!
二:指针进阶码字不易,对你有帮助 点赞/转发/关注 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新思维导图目录文章目录二:指针进阶思维导图目录前言指针的概念1、字符指针字符串的 数组 与 指针 表示的区别2、指针数组3、数组指针Ⅰ:定义Ⅱ:数组名 与 &数组名Ⅲ:数组指针的使用4、数组参数 & 指针参数Ⅰ:一维数组传参Ⅱ:二维数组传参5...原创 2020-03-06 16:02:21 · 657 阅读 · 1 评论 -
手把手教你在 windows下 配置 java 环境,简单易懂,小白向
手把手教你在 windows下 配置 java 环境,简单易懂,小白向码字不易,对你有帮助 点赞????/转发↪️/关注 ???? 鼓励一下作者更多鼓励,更多干货微信搜公众号:【不会编程的程序圆】, 获取更详尽的干货合集思维导图照着这篇文章做,你可以轻松配置好windows下 Java 的环境一:简介JDK : Java SE Development Kit Java开发工具JRE...原创 2020-02-27 17:32:00 · 907 阅读 · 2 评论 -
C语言 3 道面试题,不会还敢说你C学的好?带详解
码字不易,对你有帮助 点赞????/转发↪️/关注 ???? 支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新关于整数类型存储的面试问题以下三个问题大家可以先独立思考一下,看看如果真的面试官问你,你能不能正确的回答并清晰的讲出其中的原理。问题 1请问,printf 函数会打印出什么内容?并解释原因。char a = -1;signed ch...原创 2020-02-26 21:36:23 · 796 阅读 · 2 评论 -
教你用简单的程序判断你的电脑是大端还是小端
码字不易,对你有帮助点赞????/转发↪️/关注 ????支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新如何用程序判断自己的机器是大端还是小端?通常情况下,我们的计算机都是小端存储模式。小端:数字的低位存储到内存的低地址上。大端:数字的低位存储到内存的高地址上。我们在 VS 中创建一个临时变脸 int a = 0x11223344;// 十六进制数...原创 2020-02-26 21:16:30 · 3926 阅读 · 2 评论 -
什么是 全局变量 & 宏 & 大程序怎么写,看这一篇就够了
全局变量认识 全局变量定义在函数外的变量就是全局变量全局变量具有全局的生存期和作用域它们与任何函数无关任何函数(定义在全局变量后的的函数)内部都可以使用它们例如:int f(void);int gAll = 12;int main(void){ //__func__ 可以打印出当前函数的函数名,下划线一边是两个 printf("in %s gAll = %d...原创 2020-02-13 20:26:32 · 1023 阅读 · 2 评论 -
一篇看懂 C语言常用 字符串函数,全网最全整理!
看下去一定对你有帮助!有帮助就点个赞吧字符串函数 指的是头文件string.h里定义的 我们日常直接用的函数。一下是本节重点讲解的 6 个函数。对初学者生僻点的字符串函数我们下节再讲。putchargetcharstrlenstrcmpstrcpystrcat这些函数我们到处在用,可你有没有想过,究竟这些函数是怎么声明和定义的?他们远没有你想的那么简单。一下被划掉的部分...原创 2020-02-11 14:31:01 · 1992 阅读 · 4 评论 -
关于字符串你不知道的知识点
看前点赞 养成习惯学习编程,更多干货关注公众号[不会编程的程序圆]字符串入门字符串基础:基本概念:以 0 结尾的一串字符0 和 ‘\0’ 是一样的,但是与 ’0‘ 不同0标志着字符串的结束,但它不是字符串的一部分计算字符串长度不包括这个0字符串以数组的形式存在,以数组或指针的形式访问(更多以指针形式)头文件 string.h表示方法char* str = "Hel...原创 2020-02-06 12:27:13 · 508 阅读 · 2 评论 -
5分钟看懂什么是 malloc
关注微信公众号[编程反思录],看更多干货对你有帮助,请不吝点个赞,点关注不迷路初识 动态内存分配 [C语言必知必会]动态内存分配的引入初学数组的时候,有一个问题经常困扰着我,就是:我们可不可以自己在程序里定义一个数组的大小而不是在函数开头先声明一个很大的数组,然后仅仅使用它的一小部分?请看下面的程序:我们需要一个大小为 N ( N < 1000)的数组,我们通常这么写:i...原创 2020-02-04 19:01:40 · 3527 阅读 · 13 评论 -
指针的 运算 | 为什么指针不能 加/乘/除 指针?|NULL有什么用?|void* 能干什么?指针 详解
指针的运算 详解 [C语言必知必会]指针的运算指针加减 常量请看下面的程序,猜测一下结果:int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int* a = &arr; printf("a = %p\n", a); printf("a + 1 = %p\n", a + 1); prin...原创 2020-02-01 16:11:31 · 4180 阅读 · 1 评论 -
为什么两个数组不能直接赋值?const详解
指针 关于const关于const数组变量 是 const 的指针在初学数组时,我们都有这样的思考:既然变量可以互相赋值,那么 数组 可以相互赋值吗?比如说:int a = 1;int b = 2;int arr1[3] = {1, 2, 3};int arr2[3] = {0};b = a;//okarr2 = arr1;//error一但这么些程序就会报错,为什么会这样...原创 2020-02-01 13:27:54 · 1726 阅读 · 2 评论 -
这些关于数组的基础知识点你都知道吗?
各位同学,你觉得你数组学会了吗?不妨看看下面的问题,你能看一眼程序就回答上来吗?引子:观察下面的程序,这个程序有安全隐患吗?#include<stdio.h>intmain(){intx=0;doublesum=0;intnumber[100]={0};intcnt=0;scanf("%...原创 2020-01-30 06:02:36 · 483 阅读 · 1 评论 -
你不知道的几种素数判断方法,由浅入深,详解。(附送程序员必读好书)
对你有帮助别忘了给我点个赞哦~将近50本能让程序员进入大厂应该精读的神书,免费送给大家!只需要关注文章底下的公众号即可获得我们要判断素数,首先要知道素数的定义。素数:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。知道了素数的定义,那么我们应该想一下,如何去判断一个数是否为素数?一种思路是,我们在每次得到一...原创 2020-01-29 20:27:15 · 1464 阅读 · 3 评论 -
[C语言]那些关于函数我们容易忽略的基础知识
先赞后看 养成习惯关注公众号:不会编程的程序圆 看更多干货[C语言必知必会]初探函数相信在学校同学们看谭老师的教材的时候已经对函数有了“初步的认识”。但是,如果你没有理解下面这几个例子,那并不能说你对函数入门了。1.为什么要声明函数?#include<stdio.h>voidswap();intmain(){inta=0...原创 2020-01-24 13:06:46 · 1661 阅读 · 3 评论 -
盘点学好C语言的必知必会(1)
目录char short int long long long float double long doublechar大小: 1字节范围:unsigned char: 0 ~ 255(2^8-1)char: -128 ~ 127减去1是因为考虑到0short大小:2字节范围:unsigned short:0 ~ 65535short:-32...原创 2020-01-23 01:17:02 · 238 阅读 · 3 评论