
C语言_哔哩哔哩课堂笔记
记录C语言的一些玩法_便于查找,二次学习
神迹小卒
大学,大学,大不了自学
展开
-
C语言-puts()和gets()函数快速回忆
puts()函数屏幕输出函数,会自动换行使用方法:char arr[]="hello world";char* p=arr;puts(字符串数组名);例子:puts(arr);等同printf("%s\n", arr);puts(字符串指针);例子:puts(p);等同printf("%s\n", p);puts(字符串);gets()函数键盘读取函数,回车为止使用方法:char arr[]="hello world";char* ..原创 2020-12-23 16:16:53 · 691 阅读 · 0 评论 -
C语言-快速回忆_float和double的输入输出格式
float输入scanf("%f, &a);输出printf("%f ",a);double输入scanf("%lf",&b);输出printf("%f ",b);原创 2020-12-27 10:23:40 · 1555 阅读 · 0 评论 -
用法查询笔记_C语言_const
#include<stdio.h>const int a = 10;//生命周期为整个程序,且a不可以修改int main(){ //加const修饰的局部变量b有了静态属性,但并不是说b就是静态变量 const int b = 20;//生命周期为整个程序,且b不可以修改 //a = 30;//err:不能对静态变量进行修改 //b = 30;//err:不能对静态变量进行修改 int c = 30; const int* p1 = &c;//说明c不能修改.原创 2021-03-16 17:42:25 · 132 阅读 · 0 评论 -
C语言_快速回忆_unsigned int的输入输出的标准格式
定义: unsigned int n= 0;输入: scanf("%u",&n);输出: printf("%u",n);原创 2020-12-02 23:23:16 · 12039 阅读 · 0 评论 -
用法查询笔记_第一个C语言程序helloworld
#include<stdio.h>int main(){ printf("HelloWorld!"); return 0;}//>>HelloWorld!//C语言的标准格式原创 2021-03-16 12:45:16 · 100 阅读 · 0 评论 -
用法查询笔记_C语言_每个类型的大小
#include<stdio.h>int main(){ printf("%d\n",sizeof(char)); //>>1 printf("%d\n", sizeof(int)); //>>4 printf("%d\n",sizeof(float)); //>>4 printf("%d\n",sizeof(int*)); //>>4/8 printf("%d\n",sizeof(long long)); //>&.原创 2021-03-16 12:51:43 · 152 阅读 · 0 评论 -
用法查询笔记_C语言_变量、常量
#include<stdio.h>double c = 3.141592;//定义全局变量并赋值int main(){ int a;//定义局部变量 float b = 3.14f;//定义局部变量并赋值 return 0;}//局部变量只在{}中存活//全局变量在程序运行中存活原创 2021-03-16 12:56:15 · 397 阅读 · 0 评论 -
C语言_快速回忆switch的标准格式
switch (表达式){case 1:语句1;break;case 2: 语句1;break;default:语句3;break;}原创 2020-12-02 00:02:46 · 446 阅读 · 0 评论 -
用法查询笔记_C语言_枚举
#include<stdio.h>//枚举的关键字为enum 后面是类型的名称//编程的习惯是枚举名称和枚举内容都要大写enum SEX{ MALE, FEMALE=4,//枚举可以赋初值 SECRET//下一个默认为上一个+1};int main(){ enum SEX a = MALE; printf("%d %d %d %d",a,FEMALE,SECRET,sizeof(a));//枚举关键字默认赋值是从0开始,依次是1,2,3... //枚举类型的大小为.原创 2021-03-16 19:11:58 · 124 阅读 · 0 评论 -
C语言_快速回忆_goto标准格式
goto label;//其它代码label:一些注意点:label可以改成相应的名称不能从函数1goto到函数2不能跳出多重嵌套的循环判断中应该避免向两个方向跳转原创 2020-12-02 13:21:23 · 186 阅读 · 0 评论 -
史上最快最全的C(C++)环境安装---VS2019
宇宙第一 IDE Visual Studio 2019VS2019官网下载https://visualstudio.microsoft.com/zh-hans/vs/双击安装打勾重启开始菜单,找到VS2019打开选择主题双击按照需要选择项目类型,在这里我们选择第一个控制台应用:点击下一步到配置新项目:填写项目名称和文件保存地址以及解决方案名称,下一行的“将解决方案和项目放在同一目录下”选不选都行。勾选后解决方案就会和项.原创 2021-03-09 13:15:30 · 1887 阅读 · 0 评论 -
bilibiliclass81_C语言over_offsetof
offsetof检索成员从其结构开始的偏移量函数原型:size_t offsetof( structName, memberName );大小偏移(结构名,成员名);头文件<stddef.h>返回值:offsetof返回指定成员从其数据结构开始的偏移量(以字节为单位)。位字段未定义。 structName:数据结构的名称 memberName :数据结构中要确定其偏移量的成员的名称#define _CRT_SECURE_NO_WARNINGS#include<原创 2021-01-29 09:05:26 · 111 阅读 · 0 评论 -
bilibiliclass73_C语言小项目_文件动态通讯录的实现
#define _CRT_SECURE_NO_WARNINGS//动态增加版本:默认可以存放3个人的信息//当发现当前通讯录满的时候,我们进行扩容,一次增加2个人的信息//3 5 7 9...//#define MAX 1000#define DEFAULT_SZ 3//默认可以存放3个人的信息#define MAX_NAME 20#define MAX_TELE 12#define MAX_SEX 5#define MAX_ADDR 30#include<stdio.h&g.原创 2021-01-26 10:53:34 · 255 阅读 · 0 评论 -
bilibiliclass68-69_C语言小项目_动态通讯录的实现
#define _CRT_SECURE_NO_WARNINGS#define MAX 1000#define MAX_NAME 20#define MAX_TELE 12#define MAX_SEX 5#define MAX_ADDR 30#include<stdio.h>#include<string.h>//人物定义typedef struct PeoInfo{ char name[MAX_NAME]; int age; char sex[MAX_.原创 2021-01-24 20:00:11 · 193 阅读 · 0 评论 -
bilibiliclass64-65_C语言小项目_静态通讯录的实现
#define _CRT_SECURE_NO_WARNINGS#define MAX 1000#define MAX_NAME 20#define MAX_TELE 12#define MAX_SEX 5#define MAX_ADDR 30#include<stdio.h>#include<string.h>//人物定义typedef struct PeoInfo{ char name[MAX_NAME]; int age; char.原创 2021-01-22 11:18:06 · 156 阅读 · 0 评论 -
bilibiliclass76-80_C语言_程序的编译(预处理操作)+链接
程序环境和预处理本章重点:程序的翻译环境程序的执行环境详解:C语言程序的编译+链接预定义符号介绍预处理指令 #define宏和函数的对比预处理操作符#和##的介绍命令定义预处理指令 #include预处理指令 #undef条件编译程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。图解编译+链接C代码(文本文件) ...原创 2021-01-19 18:29:14 · 580 阅读 · 0 评论 -
bilibiliclass70-75_C语言文件操作
C语言文件操作本章重点什么是文件文件名文件类型文件缓冲区文件指针文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定什么是文件磁盘上的文件是文件但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj,Linux环境后缀为.o),可执行程序(windows环境后缀为.exe)数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出.原创 2021-01-19 18:28:52 · 297 阅读 · 0 评论 -
《C语言速成》
BIT-0-C语言课程课前准备养成写博客的习惯博客的重要性:1. 自己写博客,是对所学知识的总结2. 写博客可以记录你学习的一个过程和心得,给面试官更多了解你的机会,同时增加面试的谈资。3. 写博客说明你是一个愿意分享的人。优快云博客园51CTO-比较推荐开源中国自己搭建(服务器+域名; github博客)github的重要性https://github.com/1. 大公司喜欢的东西2. 了解git --->我是教程3. 下去先了解,再注册一下github账.原创 2021-01-12 17:27:14 · 2227 阅读 · 2 评论 -
bilibiliclass52_C语言_memmove 重叠内存拷贝
memmove重叠内存拷贝库函数声明void * memmove ( void * destination, const void * source, size_t num );从source的位置开始向后复制num个字节的数据到destination的内存位置使用和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果源空间和目标空间出现重叠,就得使用memmove函数处理。my_memmove自我实现思路解析:1 2 3 4 5 6 7 8 9原创 2020-12-27 10:22:12 · 168 阅读 · 1 评论 -
bilibiliclass54-56_C语言_结构体
结构体目录结构体 结构体类型的声明和变量的定义 结构的自引用 结构体初始化 结构体内存对齐 结构体传参结构的基础知识:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体类型的声明和变量的定义struct tag{member-list;//成员列表}variable-list;//变量列表简单例子:创建学生s1,s2,s3,s4,s5例如描述一个学生://声明一个结构体类型//声明一个学生...原创 2020-12-26 00:19:50 · 118 阅读 · 0 评论 -
bilibiliclass57_C语言_位段
位段节省空间的结构体目录:什么是位段?位段的内存分配位段的跨平台问题位段的应用:网络数据的传输什么是位段?结构体实现 位段位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int(其实char也可以)(通常位段的类型是相同或相似的成员)2.位段的成员名后边有一个冒号和一个数字。位段简单例子struct A{//类型 变量名:所占的bit位//所占的bit位<=类型bit位(win..原创 2020-12-26 00:19:36 · 129 阅读 · 1 评论 -
bilibiliclass58_C语言_枚举
枚举一 一列举目录:枚举类型的定义枚举的优点枚举类型的定义//颜色enum Color//枚举类型{ //枚举常量 RED, GREEN, BLUE};int main(){ //枚举类型 变量名 = 赋值; enum Color c =BLUE;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异 printf("%d %d %d\n",RED,GREEN,BLUE); //结果0 1 3原创 2020-12-26 00:19:28 · 101 阅读 · 0 评论 -
bilibiliclass59_C语言_联合(共用体)
联合(共用体)联合类型的定义联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。简单例子//联合类型的声明union Un{ char c; int i;};//联合变量的定义union Un un;//计算连个变量的大小printf("%d\n", sizeof(un));//4字节联合的特点联合的成员是共用同一块内存空间的,&u == &(un.i) == &原创 2020-12-26 00:19:20 · 93 阅读 · 0 评论 -
bilibiliclass54-59_C语言_自定义类型详解(结构体+枚举+联合)
自定义类型:结构体,枚举,联合本章重点结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)枚举枚举类型的定义枚举的优点枚举的使用联合联合类型的定义联合的特点联合大小的计算正文开始结构体结构体的声明结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明struct tag{member-list;}variable-li原创 2020-12-26 00:19:10 · 386 阅读 · 0 评论 -
bilibiliclass51_C语言_strstr 字符串查找-函数详解
strstr字符串查找库函数声明char*strstr(constchar*p1,constchar*p2);从p1中查找有没有出现p2,出现返回p1中出现相同的第一个p2的地址,没出现返回空指针简单例子int main(){ char* p1="abcdefabcdef"; char* p2="def"; char* ret=strstr(p1,p2); if(ret==NULL) { printf("字串不存在...原创 2020-12-26 00:18:56 · 368 阅读 · 1 评论 -
bilibiliclass53_C语言_memset 内存设置函数
memset内存设置函数库函数声明void* memset(void* dest,int c,size_t count); 目的地地址,要改的ASCII码,改动的字节数简单例子#include <stdio.h>#include <string.h>int main (){ char arr[10]=""; memset(arr,'#',10); return 0;}...原创 2020-12-25 09:50:11 · 97 阅读 · 0 评论 -
bilibiliclass53_C语言_memcmp 内存比较函数
memcmp内存比较函数库函数声明int memcmp ( const void * ptr1,const void * ptr2,size_t num );比较从ptr1和ptr2指针开始的num个字节简单例子#include <stdio.h>#include <string.h>int main (){char buffer1[] = “DWgaOtP12df0”;char buffer2[] = “DWGAOTP12DF0”;int n;原创 2020-12-25 09:50:03 · 700 阅读 · 0 评论 -
bilibiliclass52_C语言_memcpy 不重叠内存拷贝
memcpy不重叠内存拷贝库函数声明void * memcpy ( void * destination, const void * source, size_t num ); 拷贝到目的地 拷贝的来源 来源的字节数简单例子#include <stdio.h>#include <string.h>//memcpy头文件struct S{ char name[20]; int age...原创 2020-12-25 09:49:50 · 155 阅读 · 0 评论 -
bilibiliclass51_C语言_字符转化函数:大小写互转
字符转化函数:int tolower ( int c );大写转小写,小写不动int toupper ( int c );小写转大写,大写不动简单例子#include <stdlib.h>//tolower,toupper头文件#include <stdio.h>#include <ctype.h>//islower头文件int main(){ char arr[] = "I Am A Student"; //isupper原创 2020-12-25 09:49:42 · 126 阅读 · 1 评论 -
bilibiliclass51_C语言_字符分类函数
字符分类函数函数 如果他的参数符合下列条件就返回真iscntrl 任何控制字符isspace 空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’isdigit 十进制数字 0~9isxdigit 十六进制数字,包括所有十进制数字,小写字母af,大写字母AFislower 小写字母a~zisupper 大写字母A~Zisalpha 字母az或AZisalnum 字母或者数字,az,AZ,0~9ispunct 标点符号,任何不属于数字或者字原创 2020-12-25 09:49:30 · 104 阅读 · 2 评论 -
bilibiliclass51_C语言_strerror 翻译错误码的函数
strerror翻译错误码的函数库函数内的声明char * strerror ( int errnum );简单例子#include <stdio.h>#include <string.h>#include <errno.h>int main(){ //错误码 错误信息 //strerror(错误码) //0 - No error //1 - Operation not permi原创 2020-12-25 09:49:21 · 197 阅读 · 1 评论 -
bilibiliclass51_C语言_strtok 字符串删除分隔符函数
strtok字符串删除分隔符函数库函数内的声明char * strtok ( char * str, const char * sep );str指针指向一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。sep指针指向一个字符串,字符串是分隔符的字符集合应用场景:192.168.1.107192 168 1 107-strtok处理后sjxz@qq.comsixj qq com-strtok处理后简单例子介绍:#define _CRT_SECURE_原创 2020-12-25 09:49:06 · 317 阅读 · 1 评论 -
bilibiliclass51_C语言_strncmp 指定长度的字符串比较-函数详解
strncmp指定长度的字符串比较库函数声明intstrncmp(constchar*str1,constchar*str2,size_tnum);比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完。简单例子#include <stdio.h>#include <string.h>int main(){ const char* p1="abcdef"; const char* p2="abcqwer";...原创 2020-12-25 09:48:57 · 279 阅读 · 1 评论 -
bilibiliclass65_C语言_动态内存管理_C/C++程序内存分配的几个区域
C/C++程序内存分配的几个区域:1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。2. 堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收 。分配方式类似于链表。3. 数据段(静态区)(static)存放全局变量、静态数据。程序结束后由系统释放。原创 2020-12-24 12:31:11 · 118 阅读 · 0 评论 -
bilibiliclass63_C语言_动态内存管理_常见的动态内存错误
常见的动态内存错误对空指针NULL指针的解引用操作void test(){int *p = (int *)malloc(INT_MAX);//内存不够,返回空指针NULL*p = 20;//err:不能对空指针解引用free(p);}对动态开辟空间的越界访问void test(){int i = 0;int *p = (int *)malloc(5*sizeof(int));if(p == NULL){ return 0;}for(i=0; i<=1原创 2020-12-24 12:30:52 · 108 阅读 · 0 评论 -
bilibiliclass63_C语言_动态内存管理_realloc 调整开辟动态内存大小函数
realloc调整开辟动态内存大小函数库函数声明void* realloc (void* ptr, size_t size);//ptr指针指向要调整的内存地址//size为调整之后新大小//返回值为调整之后的内存起始位置简单例子#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>int main(){ int* p=(int*.原创 2020-12-24 12:30:39 · 127 阅读 · 0 评论 -
bilibiliclass63_C语言_动态内存管理_calloc 动态内存开辟函数
calloc动态内存开辟函数开辟一个num个元素的数组,元素初始化为0库函数声明void* calloc (size_t num, size_t size); //元素的个数 元素的字节大小简单例子:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>int main(){ //malloc //in...原创 2020-12-24 12:30:28 · 98 阅读 · 0 评论 -
bilibiliclass62_C语言_动态内存管理_malloc和free函数
动态内存函数的介绍malloc动态内存开辟函数库函数声明void* malloc (size_t size);简单例子#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>int main(){ //向内存申请10个整形的空间 //p中存放开辟空间的地址 int* p=(int*)malloc(10*sizeof(i.原创 2020-12-24 12:30:14 · 141 阅读 · 0 评论 -
bilibiliclass62_C语言_动态内存管理
动态内存管理本章重点为什么存在动态内存分配动态内存函数的介绍mallocfreecallocrealloc常见的动态内存错误几个经典的笔试题柔性数组为什么存在动态内存分配内存{ 栈区{局部变量,函数的形式参数} { 例如: int a = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间 } 堆区{动态内存分配}...原创 2020-12-24 12:29:37 · 148 阅读 · 0 评论 -
bilibiliclass62_C语言_动态内存管理_为什么存在动态内存分配
为什么存在动态内存分配内存{ 栈区{局部变量,函数的形式参数} { 例如: int a = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间 } 堆区{动态内存分配} 静态区{全局变量,静态变量} { 例如: static int a=4; }}栈区,静态区1. 空间开辟...原创 2020-12-24 12:31:27 · 85 阅读 · 0 评论