C
文章平均质量分 73
C语言基础知识汇总
DeRoy
微信公众号【编程学习基地】
展开
-
双向循环链表(图文讲解)
文章目录双向循环链表结构体初始化函数添加数据头插删除数据显示函数示例程序一(简易版本):运行结果:示例程序二双向循环链表结构体typedef struct node{ int data; struct node* pre; //指向前驱 struct node* next; //指向后继}NODE;双链表是链表的一种,由节点组成,每个数据结点中都有两个指针,分别指向直接后继和直接前驱。初始化函数NODE * Init(){ NODE* head = (NODE*)mall原创 2022-02-25 15:28:32 · 2620 阅读 · 0 评论 -
argc,argv是什么
来源:微信公众号「编程学习基地」文章目录argc,argv是什么如何解析程序参数“选项”是什么?"选项字符串"是什么解析参数argc,argv是什么如果你是一个 Linux 开发者,那么你一定需要给应用程序传递参数。刚接触C语言的童鞋,学的第一个程序一定是这样的#include<stdio.h>int main(){ printf("hello world\n");}接触完 Linux 下C语言编程的童鞋,他会这样做#include<stdio.h>..原创 2021-10-23 18:29:30 · 10237 阅读 · 0 评论 -
C++如何调用C接口
来源:微信公众号「编程学习基地」文章目录C++调用C文件解决调用失败问题思考:那C文件能够调用C函数吗C代码既能被C++调用又能被C调用C++调用C文件一个C语言文件p.c#include <stdio.h>void print(int a,int b){ printf("这里调用的是C语言的函数:%d,%d\n",a,b);}一个头文件p.h#ifndef _P_H#define _P_Hvoid print(int a,int b);#end..原创 2021-10-10 20:18:34 · 1124 阅读 · 0 评论 -
int 十六进制输出
十六进制输出printf("%#04x", 15)输出为0x0f表示输出前加0x(对8 进制,16进制,有效)0:填充字符4:最小位宽x:16进制原创 2021-08-11 14:00:34 · 1685 阅读 · 0 评论 -
VC++2010安装教程
VC++2010的安装安装包点击安装正在安装安装完成安装后不要忘记注册产品,否则只有30天的试用期帮助-》注册产品-》秘钥(解压后的txt文件内)注册完成VC++2010环境的搭建文件-》新建-》项目选择win32控制台项目选择空项目右键源文件,选择添加项目选择C++项目项目名称必须为.cpp文件VC++2010的使用先上代码,hello world经典入门程序代码如下#include<stdio.h>int main() //公众号:gh_85306原创 2021-08-01 00:53:29 · 13379 阅读 · 9 评论 -
VS2019搭建C语言开发环境(图文教程)
来源:微信公众号「编程学习基地」文章目录VS2019搭建C语言开发环境环境测试代码VS2019搭建C语言开发环境双击VS2019,选择创建新项目选择项目类型为空项目搜索框输入空项目进行搜索或者选择C++ Windows 控制台找到空项目输入项目名称,选择项目位置,点击创建创建成功之后需要添加C++文件main.c,鼠标移至源文件,点击右键,选择如下添加新建项如下创建成功之后需要设置SDL检查为否,否则编译器会报错当你使用不安全的函数例如sc..原创 2021-07-10 14:53:43 · 11670 阅读 · 3 评论 -
这8道C语言题涉及你的知识盲区?(难度指数:⭐⭐⭐⭐⭐)
来源:微信公众号「编程学习基地」文章目录1.gets()函数2.strcpy()函数3.内存泄露4.free()函数5.使用_exit退出6.问:修改代码片段(或者只读代码)7.返回本地变量的地址8.处理printf()的参数8个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!1.gets()函数问:请找出下面代码里的问题:#include<stdio.h> int main(void){ char buff[10]; memset(..原创 2021-06-15 00:07:56 · 624 阅读 · 7 评论 -
GCC入门
gcc使用gcc编译过程选项名作用-o产生目标(.i、.s、.o、可执行文件等)-E只运行C预编译器-S告诉编译器产生汇编程序文件后停止编译,产生的汇编语言文件拓展名为.s-c通知gcc取消连接步骤,即编译源码,并在最后生成目标文件-w不产生任何警告信息-Wall使gcc对源文件的代码有问题的地方发出警告-Idir指定 include 包含文件的搜索目录-Ldir指定编译的时候,搜索的库的路径。-lLib在程序编译的原创 2021-06-29 20:11:31 · 312 阅读 · 1 评论 -
Linux下GCC超详细讲解
来源:微信公众号「编程学习基地」文章目录什么是GCC安装命令gcc和g++的区别gcc编译过程gcc常用参数库的介绍生成静态库使用静态库生成动态库(共享库)使用动态库方法一(不推荐)方法二(临时环境变量)方法三(配置用户环境变量)方法四(配置系统环境变量)总结静态库的优缺点动态库的优缺点什么是GCCGCC原名为 GNU C语言编译器(GNU C Compiler)GCC(GNU Compiler Collection,GNU编译套件)是由GNU开发的编程语言编译器。安装命令sudo apt..原创 2021-06-29 20:10:10 · 2605 阅读 · 1 评论 -
柔性数组----C语言
柔性数组,也叫动态数组,先看个示例#include <stdio.h>struct msg_buf{ long type; char msg[0];};int main(){ printf("sizeof(struct msg_buf):%d", sizeof(struct msg_buf)); return 0;}输出:sizeof(struct msg_buf):4先不看输出,先说msg[0],我们平时用数组时不时都要明确指明数组大小,数组大小不为0(不.原创 2021-06-29 20:04:12 · 273 阅读 · 1 评论 -
看了这10道C语言谜题,你还敢说你精通C语言吗
来源:微信公众号「编程学习基地」文章目录解了这10道C语言谜题,你还敢说你精通C语言吗12345678910解了这10道C语言谜题,你还敢说你精通C语言吗本文展示了10个C语言的迷题以及答案,而且有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。1下面的程序并不见得会输出"hello-std-out",你知道为什么吗?#include<stdio.h>int main(){ ..原创 2021-06-18 10:44:31 · 247 阅读 · 1 评论 -
学习 C/C++ 语言的常用开发工具下载
学习编程首先需要安装一款编译器。但是目前的网络环境,很多网站下载到的编译器都被捆绑了各种广告插件,甚至木马病毒,困扰了很多初学者。本页面列出来的各种编译器及下载地址,我都亲自测试过,确保无毒无害无恶意广告插件,请放心下载。ps:如果某个资源无效了,请针对本文发表评论,我会收到提醒。如果你是初学者不知道选择哪个,相信我,选择 VC2010 学习版就挺好。不要听信某些人说 Linux 更适合学编程什么的鬼话,也别信什么 Code::Blocks 可以跨平台的噱头。学编程就是学编程,学会了编程再说系统或跨平台的转载 2021-04-21 08:52:00 · 1009 阅读 · 0 评论 -
printf打印彩色字符,还能闪烁!
文章目录Printf不一样的玩法颜色代码:ANSI控制码:输出特效格式控制:光标位置等的格式控制:示例颜色如下:Printf不一样的玩法在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显。同样,linux C下printf还有很多其他不常见的格式化输出形式。本文主要为你盘点这些形式。先看下效果:代码:#include<stdio.h>int main(){ printf("\033[32;5m 字符串闪耀\033[原创 2021-03-01 00:04:03 · 1599 阅读 · 3 评论 -
断言(assert)
来源:微信公众号「编程学习基地」断言(assert)编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。简单来说如果结果和你的预期一样,那么OK,结果为真继续运行.如果结果和预期不符,那么程序会抛出一个系统级错误(不是异常),并且终止程序运行。assert() 用法..原创 2021-01-19 23:31:57 · 757 阅读 · 0 评论 -
C语言可变参数的原理和应用(推荐指数:⭐⭐⭐)
来源:微信公众号「编程学习基地」2021年的第二篇文章,C语言可变参数C语言可变参数概述var_list可变参数介绍简单使用可变参数可变参数原理可变参数应用:实现log打印概述C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题var_list可变参数介绍VA_LIST 是在C语言中解决变参问题的一组宏,原型:typedef char* va_list;其实就是个char..原创 2021-01-05 01:03:33 · 1139 阅读 · 0 评论 -
一款轻量级的JSON解析库,用cJSON让你看清王者荣耀(推荐指数:⭐⭐⭐⭐⭐)
来源:微信公众号「编程学习基地」2021年的第一篇文章,带你看清王者荣耀文章目录JSON语法规则cJSONcJSON下载使用关键数据结构cJSON数据解析常用接口函数解析步骤解析示例JSON数据封装封装方法封装步骤封装示例完整代码:JSON是一种轻量级的数据格式,应用广泛。在C/C++应用中也常常作为配置文件或者数据的存储JSON语法规则JSON对象是一个无序的"名称/值"键值对的集合:以"{“开始,以”}"结束,允许嵌套使用;每个名称和值成对出现,名称和值之间使用":"分隔;键..原创 2021-01-03 11:52:36 · 796 阅读 · 0 评论 -
二级指针使用场景
文章目录前言问题&粉丝答疑&梦凡面试题修改1:修改2:前言之前有个粉丝问了我一些问题,聊天截图如下问题&粉丝他的代码是这个样子的void Pop(MazeStack* S, MSElemType e) { LinkType p; if (S->size == 0) exit(0); e = S->top->data; *** ***}一些不必要的代码我省略了,大意就是通过传参获取栈顶元素,然后原创 2020-12-09 00:24:52 · 1274 阅读 · 0 评论 -
float,double的存储模式
定点数和浮点数本文中所提到的都是基于intel x86Cpu,开发环境是基于windows 10 + vs2019。本片博客需要读者自己明白十进制、十六进制、二进制之间的转换,文中不会介绍转换过程,需要了解详细过程的情查找相关资料首先我们简单的介绍一下计算机中数据存储的基础知识,具体内容在大学课程《计算机组成原理》中有详细的介绍。计算机中对数据的存储是有两种形式,一种是以定点数方式存储即C/C++中的char、short、int、long、longlong,另一种就是以浮点数的方式存储即C/C++中原创 2020-10-11 15:22:56 · 1828 阅读 · 0 评论 -
C和C++混合编程
C代码既能被C++调用又能被C调用C++调用C文件解决调用失败问题思考:那C文件能够调用C函数吗C代码既能被C++调用又能被C调用C++调用C文件一个C语言文件p.c#include <stdio.h>void print(int a,int b){ printf("这里调用的是C语言的函数:%d,%d\n",a,b);}一个头文件p.h#ifndef _P_H#define _P_Hvoid print(int a,int b);#endifC++原创 2020-10-02 12:56:18 · 489 阅读 · 0 评论 -
浅谈Windows的各种“字符串”
文章目录绪论:中文用几个字节保存一、ASCII和UNICODE二、char和wchar_t三、LPCSTR和LPCWSTR四、TCHAR,LPCTSTR五、更多类型,如OLECHAR,BSTR,CString,QString六、建议绪论:中文用几个字节保存不知道你们的大学老师有没有说过中文是用两个字节保存,直到我了解了字符编码,然后写下了这几行代码#include<string.h>#include<stdio.h>int main(){ wchar_t w = 'a'转载 2020-09-10 16:54:51 · 473 阅读 · 1 评论 -
图书信息管理系统(推荐指数:⭐⭐⭐⭐⭐)
目录不仅仅是图书信息管理系统效果演示框架结构核心部分:双链表的实现功能函数什么是回调函数呢?回调函数能够干什么?核心层:用户管理核心层:图书管理用户登录不仅仅是图书信息管理系统基于双链表,采用面向对象编程方法制作的图书管理系统效果演示框架结构数据层:双链表管理核心层:用户管理、图书管理用户管理:用户分三种:readonly、write、root(可删除数据)功能:Exit(退出), Add(添加), Show(显示), Change(修改), Delete(删除), Search(查原创 2020-07-11 01:09:51 · 2607 阅读 · 2 评论 -
基于Easyx制作的飞机大战
目录飞机大战结构体游戏三部曲初始化Game_Init()绘制Game_Paint()数据更新Game_Updata()主函数按键的处理说明链表的增删操作添加敌方飞机敌方飞机移动添加子弹子弹移动飞机大战基于链表操作的飞机大战游戏运行截图:来源: 飞机大战.结构体定义飞机大战所需结构体并全局定义结构体成员//子弹的结构体 struct bullet{ int x; in...原创 2020-04-21 09:34:20 · 2243 阅读 · 2 评论 -
atoi、itoa、rand、srand......
函数介绍string.h:strncat strcatmemchr strchrmemmove memcpy strcpymemsetstdlib.h:atoiitoarandsrandstring.h:strncat strcat//函数名: strncat //功 能: 附加指定大小字符串的字符//用 法: char *strncat(char...原创 2020-03-20 09:35:16 · 272 阅读 · 0 评论 -
二维数组的动态分配
二维数组的动态分配#include<stdio.h>#include<stdlib.h>int main(){ //二维数组的动态分配问题 int row = 4, col = 4; //动态数组的行和列 int **p; //申请高一级的动态数组 p = (int**)malloc(sizeof(int*) * ro...原创 2020-03-20 09:30:41 · 243 阅读 · 0 评论 -
extern和static的区别
目录extern和static的区别extern的使用:static 静态变量extern和static的区别extern的使用://main.c#include<stdio.h>#include"test.h"extern int x;int main(){ printf("%d\n",x); return 0;}在mian.c里面使用其他.c文...原创 2020-03-20 09:29:51 · 3848 阅读 · 0 评论 -
C语言基础(十)----预处理
文章目录宏定义带参宏特殊的宏头文件包含条件编译#if-#elif-#else-#endif#ifndef - #define - #endif#pragma宏定义作用:文本替换 提高代码的可读性//示例 1#define PI 3.1415926带参宏没有参数类型 也没有返回值类型可以接受任意类型的参数 本质是替换没有任何检查//示例 2#define ADD(A,...原创 2020-01-13 19:55:46 · 315 阅读 · 0 评论 -
C语言基础(九)----文件操作
文章目录文件操作缓冲区文件类型路径文件操作函数打开关闭文件字符读写函数 fgetc / fputc字符串读写函数 fgets / fputs格式化读写文件 fprintf / fscanf二进制读写文件 fread / fwrite文件指针的操作文件操作程序运行产生的数据是存储在内存中的,当程序关闭的时候,数据随之丢失,想要保存数据,需要进行文件操作将数据保存在磁盘中。缓冲区在进行文...原创 2020-01-13 19:51:54 · 616 阅读 · 0 评论 -
C语言基础(八)----结构体
结构体结构体结构体的作用结构体的定义和使用结构体的定义方式引用结构体变量中的成员typedef的定义和使用内存对齐结构体总大小为最大对齐数的整数倍位域枚举联合结构体结构体的作用数组:具有相同类型的数据的集合结构体:存储不同类型的数据项单一的数据类型无法满足特定的需求,数据类型的集合体:结构体 出现了结构体的定义和使用结构体的定义方式结构体是一种自定义数据类型 struct用...原创 2019-12-26 16:00:40 · 443 阅读 · 0 评论 -
C语言基础(七)----指针(二)
微信公众号:编程学习基地关注可了解更多编程知识。问题或建议,请公众号留言;来源:公众号【编程学习基地】作者:梦凡编程 详细教程,请参考:https://blog.csdn.net/qq_44519484/article/details/103226783指针(二)一、指针和数组区别: 指针可以申请一块内存当作数组使用 数组直接定义使用相同点:都可以管理一块内存指针...原创 2019-11-29 23:16:09 · 622 阅读 · 0 评论 -
C语言笔记(六)----指针(一)
目录指针(一)指针的基本概念指针定义和使用指针在函数中的简单应用内存模型堆区野指针:规避:常量区栈区代码区常量指针 和 指针常量关键字:const常量指针指针常量指针(一)指针的基本概念根据指针指向的位置的不一样,指针也是有类型。指针定义和使用#include<stdio.h>int main(){ int x=0; int* p=&x; //p 与 &a...原创 2019-11-24 17:51:36 · 289 阅读 · 0 评论 -
C语言笔记(五)----函数
目录函数函数的定义函数的定义返回值函数的调用普通调用嵌套调用形参和实参形式参数实际参数函数传参传值调用引用调用数组传参作用域static 静态变量递归调用函数函数的定义什么是函数函数:一段封装的代码 实现了某一个功能函数的定义返回值类型 函数名(参数类型 参数){函数体;return 返回值;}#include<stdio.h>int Ad...原创 2019-11-06 23:46:29 · 332 阅读 · 0 评论 -
C语言笔记(四)----数组
目录数组数组的定义数组元素的使用循环和数组的搭配二维数组和多维数组字符数组字符串函数字符串输入输出函数字符串处理函数注意事项数组数组的定义为什么要使用数组单一的变量很难满足需求,这个时候多变量的集合数组出现了数组的定义类型 数组名[数组大小]; int arr[100]; //定义100个int类型的变量 类型可以是int double float char 这些基...原创 2019-10-24 21:27:58 · 541 阅读 · 0 评论 -
C语言笔记(三)----分支循环
目录分支循环分支if的用法及示例switch的用法及示例循环whiledo whilewhile和do while的区别for跳转语句分支循环分支if的用法及示例用法:满足条件执行,不满足条件不执行 if(条件1) { //如果满足条件1 执行{}里面的语句 } else if(条件2) { //如果满足条件2 执行{}里面的...原创 2019-10-15 18:32:25 · 919 阅读 · 0 评论 -
C语言笔记(二)----运算符
摘要运算符算术运算符除法运算符根据整数除法特性:四舍五入 设计方法求余运算符利用求余得到整数的各个位数:水仙花数 算法关系运算符和逻辑运算符关系运算符逻辑运算符&& 逻辑与|| 逻辑或!逻辑非逻辑运算符的截断位运算符(二进制运算符)交换两个变量的值赋值运算符条件运算符(三目运算符)其他运算符() 括号运算符++ --自增和自减前++后++前加加,后加加探讨(小白勿看)&...原创 2019-10-09 17:16:33 · 591 阅读 · 2 评论 -
C语言笔记 (一) ----基本数据类型
基本数据类型1.变量和常量描述1 小明在跑步 速度用v表示描述2 小明在往下掉 加速度用g表示例如:速度每次测量 得到的结果未必一样 加速度每次测量 结果都一样同样存放一个数据 数据有 可变或者不可变 区别数据可变 变量数据不可变 常量2.基本数据类型编译器要处理数据 那么就需要知道数据的存储大小和存储方式(即数据类型)常...原创 2019-10-05 14:24:15 · 599 阅读 · 0 评论 -
C语言入门篇----system命令
system命令控制台命令win+R打开菜单 输入命令 可以快速执行一些程序或者功能mspaint 打开画图calc 打开计算器notepad 记事本这些命令同样可以适用于 system 命令 比如#include<stdlib.h>//加#include<windows.h>也可以int main(){ system("c...原创 2019-10-05 16:41:25 · 5611 阅读 · 0 评论 -
VC++6.0汉化版的安装和使用
VC++6.0的安装VC++6.0安装包点击安装点击下一步建议安装在D盘安装过程需要几分钟安装完成VC++6.0环境的搭建去掉勾选,点击完成点击文件,选择新建选择Win32 console Application填写项目名字(任意,可为汉字)选择空项目,点击完成点击文件,再次选择新建选择C++ Source File文件...原创 2019-09-10 18:43:59 · 9249 阅读 · 0 评论 -
C语言笔记总结归纳
C语言深度挖掘笔记摘要数据类型为啥要有数据类型所有数据都会以二进制的形式存放在内存当中,不同类型的数据存取和处理方式都不一样.计算机存储和处理方式—>二进制基本数据类型类型名称说明char字符类型存放字符的ASCII码int整型存放有符号整数short短整型存放有符号整数long长整型存放有符号整数long lon...原创 2019-10-07 10:30:28 · 917 阅读 · 0 评论