
c语言
文章平均质量分 92
我尽量用我的最好的理解方式讲给你
厚积薄发ض
当你运行错误时,不如调试一下,当你等待老师的答案时,不如自己百度一下
展开
-
c语言最后预处理送给你
一篇思维导图送给大家(总结思维导图真的提升非常大);目录预处理一些预定义符号#define定义标识符#define定义宏#define的替换规则带副作用的宏参数宏与函数对比#undef命令行定义条件编译文件包含头文件重复包含问题头文件重复包含解决方案预处理一些预定义符号__FILE__ 进行编译的源文件 __LINE__ ...原创 2022-02-26 20:04:10 · 832 阅读 · 1 评论 -
c语言程序运行环境
目录程序运行环境翻译环境和执行环境从源代码到可执行程序的几个阶段翻译环境的执行中的编译和链接预编译编译汇编链接运行环境程序运行环境在学习c语言中我们是否有这样的困惑,我们平常写代码,但是我们一开始就会很好奇,通过程序员写的代码,然后经过编译器翻译就可以运行我们的程序得到我们的结果。我们写的代码是经过什么样的处理才能生成我们的可执行程序(.exe文件)呢?这篇文章就会告诉你答案。翻译环境和执行环境在c语言中我们每次运行一个程序进行编译的时候都会有.原创 2022-02-26 17:22:41 · 6317 阅读 · 0 评论 -
文件的基础
文件的基础知识什么是文件呢?这个就很简单,我们一般单击鼠标右键,然后新建文件夹,这就是在创建一个文件,在比如我们磁盘中的各个文件夹,这都是文件,我们通常起一个有意义的文件名防止下次找不到。为什么要使用文件呢?比如我们写一个通讯录的代码,我们要存储数据,但当你用完通讯录的时候,这时候你就会关闭通讯录,这时,当你再次打开通讯录的时候我们就在也找不到上一次存储的数据,而当我们有了文件,就会保存上一次存储的数据。所以文件让数据有了持久性,当你下次使用时,上次的数据依然存在。(这里是指关闭通讯录而不是原创 2022-02-24 19:16:06 · 245 阅读 · 0 评论 -
memcpy,memmove,memcmp,memset内存函数
memcpy内存拷贝函数memcpy是内存拷贝函数,从源字符串src所指向的起始位置,拷贝到目标字符串dest的起始位置中。从src拷贝n个字节的起始位置地址到目标dest的起始位置地址。与strcpy不一样,memcpy可以拷贝任何数据,整形,字符等。而strcpy只能拷贝字符串。1.source和destin所指的内存区域可能重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前不被覆盖。而使用memmove可...原创 2022-01-30 21:45:04 · 1354 阅读 · 0 评论 -
常见字符串函数及模拟字符串函数
strlen函数介绍及模拟实现strlen:用来求字符串长度的函数字符串以\0结尾,strlen是计算\0前面的字符串长度不包含\0,例如字符串"abcdef"包含a,b,c,d,e,f,\0 但strlen计算的答案不包含\0,所以长度为6;strlen参数为常量字符串,指针指向的内容不可变(因为求字符串长度不需要改变字符串); strlen返回值为无符号数。如果为避免出现上述错误我们应该避免相减判断。以后要时时刻刻注意strlen返回值为无符号数。模拟实现str...原创 2022-01-30 15:43:20 · 1376 阅读 · 1 评论 -
动态内存管理
为什么会有动态内存管理呢?先看一看我们之前定义的变量int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间我们定义的局部变量是在栈上开辟的,什么是栈?这就会引出程序地址空间的那张图啦;有堆区还有栈区,我们以前定义的局部变量都是在栈上开辟的,而我们今天讲的是动态内存分配都是在堆区上。既然讲到为啥会有动态内存分配,那肯定在栈区上不能够满足动态内存分配。我们在栈区上的特点是:1. 空间开辟大小是固定...原创 2022-01-27 19:17:31 · 1392 阅读 · 2 评论 -
自定义类型:结构体,枚举,联合
目录结构体结构体的声明结构体的特殊声明结构体声明的小总结结构体的自引用总结结构体变量的定义和初始化结构体的内存对齐为啥要存在结构体对齐?修改默认对齐数结构体传参位段位段内存分配位段的跨平台问题位段的应用结构体我们之前也学过一个自定义类型那就是数组,还记得数组的定义,数组是相同类型元素的集合,它的每一个元素是通过下标或指针间接访问的。比如我们想要存放一组整形,就可以用数组存放,那比如我想让你描述一个学生呢?这时你就无法用数组描述,...原创 2022-01-24 00:44:35 · 879 阅读 · 0 评论 -
strlen与sizeof的区别及搞明白这些指针笔试题让你不在恐惧指针
目录sizeof与strlen的区别sizeofstrlensizeof与strlen的区别数组名的意义首先我们在做一些指针的笔试题,需要一些储备知识,第一就是strlen和sizeof区别,好多人到现在可能都不太明白今天就让你理解,第二就是数组名的含义。sizeof与strlen的区别 sizeof sizeof主要用于计算数据类型及数组的所占空间大小。只关注空间大小。单位是字节。 strlen strlen主要计算的是字符串长度,遇到\0就停止,这里是原创 2022-01-21 00:23:16 · 2659 阅读 · 22 评论 -
这篇文章可能是你最期待的高级指针话题(上万字总结)
字符指针字符指针:指向字符型数据的指针变量。每个字符串在内存中都占用一段连续的存储空间,并有唯一确定的首地址。即将字符串的首地址赋值给字符指针,可让字符指针指向一个字符串。存放字符的字符指针#include<stdio.h>int main(){ char ch = 'w';//(1) char* pc = &ch;//(2) *pc = 'w';//(3) return 0;}1):开辟char类型变量为ch内存空间存放一个字符w; 2):...原创 2022-01-15 22:11:21 · 894 阅读 · 20 评论 -
带你在识指针
指针基础知识 指针的定义 指针是什么呢?指针就是内存中一个最小单元的编号,这个编号就是地址也被形象的被我们称作指针(即指针就是地址)。通过指针就可以访问空间中的数据,我们把通过指针进行访问数据这种操作叫作间接访问(也可以称间接寻址),这就是我们c/c++语言的灵魂,无处不在。 为啥要有指针呢? 我们这里打个比方,我叫我的朋友来我寝室里找我玩,但是我没有告诉它我寝室的地址,这时他是不是就找不到我或者找我需要很长的时间,如果我不给他地址,他只能挨个寝室去敲敲门看哪个屋里有我,这样的速.原创 2022-01-03 20:24:06 · 476 阅读 · 1 评论 -
vs项目创建和第一个c语言程序及数据类型及变量常量
1:项目的创建第一步我们打开vs2019/vs2017点击新建I项目第二步我们创建一个项目第三步然后成功创建一个c语言项目注意一下不要写成.cpp因为.cpp是写c++程序的而.c是写c语言的接下来我们写一个c语言中第一个程序hello,world#include<stdio.h>int main(){ printf("hello,world\n"); return 0;}按ctrl+f5进行编译程序如果你是vs2...原创 2021-10-16 22:54:53 · 921 阅读 · 2 评论 -
变量的生命周期和作用域,常量的分类,字符串转义字符以及注释
小伙伴们,大家好啊,我又来了,继续写博客,写博客不仅可以检验自己学习成果还可以与博客的朋友们一起探讨与分享和交流。今天我们讲一下c语言常见的基础知识没有他们的支持是不可以的哦这里我们只是浅略的了解一下也就是初步认识一下以后的博客我会给大家详细的讲解一下,好了我们进入正题,那我们开始吧目录变量的生命周期和作用域生命周期作用域常量的分类字面常量#define定义的标识符常量const修饰的常变量枚举常量字符串转义字符以及注释字符串转义字符注释变原创 2021-10-17 15:04:27 · 791 阅读 · 3 评论 -
初步认识常见关键字(计算机内存的底层原理)(由于知识储备不够,请见谅),#define 定义常量和宏
常见关键字关键字的深层次理解及作用我在写博客之前看了其他优秀的作品,都是在讲些关键字都有啥,关键字的每个作用都是啥,但作为一个学生来讲(我有点笨,学识太浅),根本不知道关键字到底有啥用,以及为什么要出现关键字,这里我就给大家说一下为什么要有关键字呢这是我在我网上找到的解释:C语言中的关键字是C语言开发者在开发时定义有特殊意义的字符,编译器通过这些关键字编译器才能对你的代码进行解释以及关键字在c语言的作用:C语言中的关键字是极其重要的。这就好比一个企业的各个部门,如果你是老板,你可以根据...原创 2021-10-23 16:09:33 · 799 阅读 · 7 评论 -
简单认识一下分支和循环语句,数组,函数,操作符
声明一下:我们这里是简单认识一下也就是知道这些是干什么的就好,不深入探讨,等我们到后面的文章再仔细深度剖析一下进行深入了解。好,接下来我们进入今天的正题。分支和循环这里的语句对我们在c语言学习的进行中对我们是相当的重要,所以大家在看我这篇文章深度是不够的,大家可以在我后面的文章进行深度学习和了解。分支既然讲分支,那什么是分支呢,也就是我们每当经过一个十字路口,和我们每一次作出重要的事情都要做出重大选择,没错就是选择,我们生活处处在选择,在英语中的选择叫choice而在c语言中是if语句,原创 2021-10-20 16:00:22 · 424 阅读 · 10 评论 -
指针最最基础
指针是啥?数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。1. 指针是内存中一个最小单元的编号,也就是地址2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量总结:指针就是地址,口语中说的指针通常指的是指针变量讲到指针,那必然得了解一下内存,我们将内存划分为一个一个小的内存单元(一个小的内存单元是一个字节),而我们将这个每个小的内存单元的编号就叫做地址。有的同学会说,为啥编号呢?这就跟生活中一样,我们会在某一个小区,如果在学校的原创 2021-12-29 11:04:11 · 385 阅读 · 2 评论 -
最后初步认识指针和结构体
今天讲完最后的初识c语言,我们下一篇就开始进入深层次的写每一个环节啦!加油,兄弟我和你一起努力,走过这c语言之路,经历过阵痛,最后那即便是美好了!!!指针指针听着这名字好像很可怕的样子,虽然你没学过但可能听说过指针是我们说的指南针么这个么?哈哈当然不是,指针是c语言非常抽象的东西好接下来开始我们的正题给一下指针的官方定义:.在C语言中,指针是指一个变量的地址,通过变量的地址″指向″的位置找到变量的值,这种″指向″变量地址可形象地看作″指针″。用来存放指针的变量称...原创 2021-10-26 23:15:08 · 313 阅读 · 1 评论 -
深入理解c语言中的分支和循环语句
上回将分支语句和循环语句的时候我们只是初步认识一下分支和循环是什么,一些简单地使用,而这篇文章我给大家深入讲解一下一些基本的分支语句和循环语句的基本语法。目录语句什么是语句呢?语句的分类分支语句if语句选择语句种常见错误(符号错误问题1)选择语句种常见错误(符号错误问题2)选择语句种常见错误(符号错误问题3)悬空elseif的书写形式switch语句循环while循环while循环执行流程while循环中的breakwhile循环中..原创 2021-10-30 00:48:45 · 798 阅读 · 1 评论 -
一篇理解c语言函数看不懂拿刀找我
函数的嵌套调用和链式访问函数的嵌套调用官方定义:C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。通俗的讲:什么是嵌套调用呢?不就是套娃似的调用函数么,也就是一个函数在使用的过程中需要调用另一个函数的作用,而这个函数又要调用下一个函数的作用,这是就被我们称为嵌套调用。此外嵌套调用是上下级关系,原创 2021-11-05 23:42:54 · 1444 阅读 · 7 评论 -
一篇让你理解数组
数组的概念:数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式,是用于储存多个相同类型数据的集合。数组的创建type_t (元素的数据类型) arr_name(数组名) [const_n](数组的元数个数(数组的大小))。//type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小数组创建注意事项1 ,数组创建arr[ ]中方括号能否是变量?在一般编译器是不能是使用变长数...原创 2021-11-07 23:02:49 · 358 阅读 · 4 评论 -
这些c语言操作符你确定你掌握了?如果不保准就来看看这篇文章吧
操作符详解什么是操作符呢?C语言操作符指的是运算符号。毋庸置疑,运算符号(操作符)就是进行c语言的一些运算的,这些运算符虽然你在学c语言的时候很不起眼,而在有些题目上还不让用这些操作符来做题,但是,当你用到他们的时候,他们会给你意想不到的帮助。操作符的分类C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符操作符的优先级所谓优先级:就是计算的顺序,在数学中有这么一个说法,就是先计算括号里原创 2021-11-14 20:42:15 · 1379 阅读 · 8 评论 -
这些结构体常见知识你都了解了吗?
目录结构体的声明结构体的概念结构体的声明结构体的成员类型结构体变量的定义及初始化结构体变量的嵌套定义结构体成员的访问结构体传参结构体值传递结构体地址传递结构体的声明结构体的概念在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员原创 2021-11-21 16:34:35 · 752 阅读 · 10 评论 -
c语言中缓冲区问题
目录例题问题原因解决方法一:解决方法二:解决方案三:出错二gets函数引入你是不是总会出现当你输入的时候(你想的是只输出一个内容),但是最后却输入两个。比如下面这个例子那这到底是是哪出了问题呢?没错这就是关于缓冲区的问题。我们先仔细了解这个题目例题判断字母是否为元音字母包括大小写。看代码实现(错误的)#include<stdio.h>int main(){ int i = 0; char ch = 0; c.原创 2021-11-20 15:00:06 · 758 阅读 · 4 评论 -
深度理解数据在内存中的存储
数据类型的介绍char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数C语言有没有字符串类型?答:1.c语言中没有string类型 2.在C++、java等编程语言中,String就是字符串。 3.在C语言中字符串用字符数组表示,没有单独的string类型变量...原创 2021-12-05 20:56:14 · 751 阅读 · 9 评论