C语言学习(bit)
文章平均质量分 58
学习C语言,争做新青年
Flying`
这个作者很懒,什么都没留下…
展开
-
C语言知识点复习纲要
C语言知识点复习纲要1.初始C语言2.基础语句3.函数,递归函数4.数组5.指针初阶1.初始C语言1. 8种数据类型及其大小2. 变量 常量变量的作用域和生命周期常量的定义方法——const 和 define3. 字符串的定义方式4. 转移字符的使用5. 选择语句,循环语句,函数6. 数组——整型数组,字符数组char ch3[] = “hello”;//后面默认有一个/07. 运算符加减乘除取模 移位按位与或非sizeof按位取反——对存在内存中的补码进行取反的强制类型转原创 2022-02-27 22:54:42 · 1110 阅读 · 0 评论 -
23.程序环境和预处理
程序环境和预处理1.程序的翻译环境和执行环境1.1在ANSI C的任何一种实现中,存在两个不同的环境1.2程序运行的大致流程2.翻译环境2.1翻译由编译和链接两部分组成2.2编译由 预编译,编译,汇编 三部分组成3.运行环境4.预处理详解4.1 预定义符号4.2 #define4.2.1 #define 定义标识符4.2.2 #define 定义宏4.2.3 #define 替换规则4.3预处理操作符 # 和 ## 的介绍4.3.1 #的作用4.3.2 ##的作用4.4 带副作用的宏参数4.5 宏和函数对比原创 2022-02-27 16:26:36 · 222 阅读 · 2 评论 -
22.文件操作
文件操作1.为什么使用文件2.什么是文件2.1 程序文件2.2 数据文件2.2 图解程序文件和数据文件的关系2.4 文件名3.文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭3.2.1打开方式如下:3.2.2输入输出的关系:3.2.3 关于流的理解4.文件的顺序读写举例1:举例2:用 fputc 向文件中写入内容举例3:用 fgetc 从文件中读出内容,并打印在屏幕上举例4:用 fputs 向文件中写入内容举例5:用 fgets 从文件中读出内容,并打印在屏幕上举例5:将text.txt 拷贝一份原创 2022-02-23 17:06:10 · 550 阅读 · 2 评论 -
21.动态内存管理
动态内存管理1. 为什么存在动态内存分配2. 动态内存函数的介绍2.1 malloc 和 free 函数2.2 calloc 函数2.3 realloc函数3. 常见的内存错误3.1 对NULL的解引用操作3.2 对动态开辟空间的越界访问3.3对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存的多次释放3.6 内存泄漏(动态开辟内存时忘记释放)4. C/C++程序的内存开辟5. 柔性数组5.1 柔性数组的特点5.2 柔性数组的使用5.3 柔性数组的优势原创 2022-01-24 22:25:56 · 131 阅读 · 18 评论 -
20.自定义类型——结构体,枚举,联合
一. 结构体1.结构体类型的声明没有typedef的声明struct Stu{ char name[20]; int age; char sex[5]; char id[20];}stu1,stu2,*p,arr[10];struct Stu stu3;int main(){ struct Stu stu4; return 0;}上面的代码中,1.stu1,stu2,stu3都是全局变量2.stu4 是main函数中的局部变量3.p是struct Stu类型原创 2022-01-23 21:31:30 · 579 阅读 · 17 评论 -
19.字符函数和字符串函数
前言:C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量 适用于那些对它不做修改的字符串函数.函数介绍:1.strlen函数——计算字符串长度size_t strlen ( const char * str );注意事项:1.字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。2.参数指向的字符串必须要以 ‘\0’ 结束。3.注意函数的返回.原创 2022-01-21 18:09:42 · 904 阅读 · 13 评论 -
18.有关数组和指针的笔试题
一般情况下,数组名是首元素地址但是,有两个例外:1.sizeof(数组名)————数组名单独放到整个数组里面,计算的是整个数组的大小,单位是字节2.&数组名,这里的数组名也表示数组,取出的是数组的地址1.题目1//一维数组 int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//数组名a单独放到sizeof里面,计算的是整个数组的大小 4*4=16字节 printf("%d\n", sizeof(a + 0));//这里的数.原创 2022-01-20 12:49:03 · 895 阅读 · 6 评论 -
17.C语言进阶——深度理解指针
指针进阶1. 字符指针常见情况在指针的类型中我们知道有一种指针类型为字符指针 char* ;一般使用:int main(){ char ch = 'w'; char *pc = &ch; *pc = 'w'; return 0; }还有一种使用方式如下:int main(){ char* pstr = "hello bit.";//这里是把一个字符串放到pstr指针变量里了吗? printf("%s\n", pstr); retur原创 2022-01-18 10:46:44 · 2343 阅读 · 8 评论 -
16.C语言进阶——深度剖析数据在内存中的存储
深度剖析数据在内存中的存储1. 数据类型详细介绍1.1 类型的基本归类:2. 整形在内存中的存储:原码、反码、补码2.1 原码、反码、补码3. 大小端字节序介绍及判断3.1什么大端小端:3.2 设计一个小程序来判断当前机器的字节序4. 浮点型在内存中的存储解析1. 数据类型详细介绍前面我们已经学习了基本的内置类型:char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点原创 2021-11-24 22:10:56 · 650 阅读 · 2 评论 -
15.实用调试技巧
实用调试技巧1.什么是bug?2.调试是什么?有多重要?2.1调试是什么?2.2调试的基本步骤3.debug和release的介绍4.VS中常见的快捷键:5.windows环境调试介绍5.1查看临时变量的值5.2查看内存信息5.3查看调用堆栈5.4查看汇编信息5.5查看寄存器信息5.6条件断点的使用6.一些调试的实例6.1分析下面这个代码为什么死循环?7.如何写出好(易于调试)的代码8.编程常见的错误1.什么是bug?"你看到的是人类历史上的第一个程序Bug——烧糊的蛾子一枚。2.调试是什么?有多重原创 2021-11-22 11:22:37 · 346 阅读 · 0 评论 -
14.结构体
结构体1.结构体类型的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的定义和初始化2.结构体成员访问3.结构体传参1.结构体类型的声明1.1 结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。1.2 结构的声明struct tag{ member-list; }variable-list;例如描述一个学生:typedef struct Stu{ char name[20];//名字 int age;//年原创 2021-11-20 10:29:04 · 163 阅读 · 0 评论 -
13.指针初阶(超清晰图解)
指针初阶1. 指针是什么1.1从内存的角度理解:用指针变量存储变量的地址1.2一个小的单元到底是多大?2. 指针和指针类型2.1指针有无类型:2.2指针类型的意义:2.2.1指针的类型决定了指针向前或者向后走一步有多大(距离)2.2.2决定了对指针解引用的时候有多大的权限(能操作几个字节)。3. 野指针4. 指针运算5. 指针和数组6. 二级指针7. 指针数组1. 指针是什么在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个原创 2021-11-18 10:55:58 · 1337 阅读 · 0 评论 -
12.2——EDG夺冠后,我即兴写下这个扫雷,太顶了
1.项目文件一览2.代码一览1> game.h#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define COUNT 10void InitBoard(char board[ROWS][COLS], int rows, int cols, char ret)原创 2021-11-10 11:43:25 · 384 阅读 · 4 评论 -
12.1 EDG夺冠后,我即兴写下这个三子棋,太顶了
文件一览game.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3//初始化棋盘void InitBoard(char board[ROW][COL], int row, int col);//打印棋盘void DisplayBoard(char board[ROW][C原创 2021-11-08 15:44:54 · 96 阅读 · 2 评论 -
12.数组(一维数组,二维数组, 数组越界,数组作为函数参数,冒泡排序,数组名的含义)——(C语言)
数组1. 一维数组的创建和初始化1.1 数组的创建数组是一组相同类型元素的集合。数组的创建方式:type_t arr_name [const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小数组创建的实例://代码1int arr1[10];//代码2int count = 10;int arr2[count];//数组时候可以正常创建?//代码3char arr3[10];float arr4[1];double原创 2021-11-05 15:29:38 · 593 阅读 · 6 评论 -
11.函数(C语言)+递归函数(超清晰图解递归)
函数1.函数是什么?2.库函数1)库函数的基本知识2)初识几个库函数3.自定义函数自定义函数的组成4.函数参数1 )实际参数(实参):2) 形式参数(形参):5.函数调用1) 传值调用2)传址调用3)练习1. 写一个函数可以判断一个数是不是素数2. 写一个函数判断一年是不是闰年。3. 写一个函数,实现一个整形有序数组的二分查找4. 写一个函数,每调用一次这个函数,就会将num的值增加16.函数的嵌套调用和链式访问7.函数的声明和定义8.函数递归1.函数是什么?1)函数是一个大型程序中的某部分代码, 由一原创 2021-11-01 12:26:49 · 5940 阅读 · 4 评论 -
10.goto语句
关于goto语句:C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环。这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。1.关机程序:#include<stdio.h>#include<string.h>int main(){原创 2021-10-31 20:07:15 · 105 阅读 · 2 评论 -
9—(4)—猜数字游戏
游戏思路:电脑随机生成一个1——100之间的数字(靠rand()函数生成一个随机数)玩家猜数字玩家猜小了,电脑会告诉:猜小了玩家猜大了,电脑会告诉:猜大了玩家猜中了,电脑会告诉:恭喜你,猜对了#include<stdio.h>#include<stdlib.h>#include<time.h>void menu()//游戏菜单{ printf("********************\n"); printf("***** 1.play ***原创 2021-10-30 10:37:58 · 2131 阅读 · 0 评论 -
9—(3)—打印素数
1.最朴素法int main(){ int i = 0; int j = 0; for (i = 100; i <= 200; i++) { for (j = 2; j <= i; j++) { if (i%j == 0) { break; } } if (j == i) { printf("%d ", i); } } return 0;}2.改进1#include<math.h>int main()原创 2021-10-29 18:42:55 · 84 阅读 · 0 评论 -
9—(2)——求最大公约数(试举法 和 辗转相除法)
1.试举法//1.试举法int main(){ int a = 0; int b = 0; scanf("%d %d", &a, &b); int max_com_div = a < b ? a : b;//假设a,b中较小值为最大公约数 while (max_com_div!=1) { if ((a % max_com_div == 0) && (b % max_com_div == 0)) { break; } max_.原创 2021-10-29 18:17:31 · 100 阅读 · 0 评论 -
9.作业题——(1)
1.时间转换#include<stdio.h>int main(){ int seconds=0; scanf("%d",&seconds); int hour=seconds/3600; int minute=(seconds%3600)/60; int second=(seconds%3600)%60; printf("%d %d %d",hour,minute,second); return 0;}2.求平均成绩原创 2021-10-29 17:33:36 · 165 阅读 · 0 评论 -
8.do while循环(do while 循环的特点,break continue在do while 循环中的区别)
1.do while 循环的特点int main(){ int i = 10; do { printf("%d\n", i); } while (i<10); return 0;}//输出10do while 至少执行一次2.break在do while 循环int main(){ int i = 1; do { if (5 == i) { break; } printf("%d ", i); i++; } while (i<=10原创 2021-10-27 18:01:39 · 317 阅读 · 0 评论 -
7.二分查找——折半查找(C语言)
假设在数组arr[10]={1,2,3,4,5,6,7,8,9,0}中查找4,如果有输出其下标#include<stdio.h>#include<string.h>int main(){ int arr[10]={1,2,3,4,5,6,7,8,9,0};/假设查找在一个数组中查找 int left=0;//查找范围左边界 int right=sizeof(arr[10])-1;//查找范围左边界 int mid=0; int k=4;//假原创 2021-10-27 17:48:15 · 604 阅读 · 0 评论 -
6.循环语句的应用(求阶乘,求阶乘的和,演示多个字符从两端移动 向中间汇聚,二分查找)
1.求阶乘int main(){ int n = 0; scanf("%d", &n); int ret = 1; int i = 0; for (i = 1; i <= n; i++) { ret = ret*i; } printf("%d\n", ret); return 0;}2.求阶乘的和(1)构造双重循环int main(){ int i = 0;//控制求和 int j = 0;//控制求阶乘 int ret = 1; int n =原创 2021-10-27 17:24:13 · 484 阅读 · 0 评论 -
4.getchar在while循环中的应用(利用getchar输入字符,利用getchar输入字符)
1.利用getchar输入字符int main(){ int ch = 0; while ((ch = getchar()) != EOF)//遇到错误和回车返回EOF { putchar(ch); } return 0;}输入ctrl + Z 即可截至循环2.利用getchar输入字符int main(){ char input[20] = { 0 }; printf("请输入密码:>"); //当输入abcdef haha,然后回车的时候 //实际输入的是原创 2021-10-27 16:48:07 · 4196 阅读 · 2 评论 -
3.循环语句(while循环,while循环中continue和break的区别)
1.while循环int main(){ int i = 1; while (i <= 20) { printf("%d ", i); i = i + 1; } return 0;}2.while 语句中的break 和 continue(1)break介绍int main(){ int i = 1; while (i <= 10) { if (i == 5) { break; } printf("%d ", i); i++;原创 2021-10-25 21:38:46 · 277 阅读 · 0 评论 -
2.分支语句
1.if语句单分支多分支悬空else单分支int main(){ int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年!\n"); } return 0;}多分支int main(){ int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年!\n"); } else { printf("成年人!\n原创 2021-10-25 20:59:41 · 75 阅读 · 0 评论 -
1.初识C语言(带你0基础体会C语言的魅力)
#include<stdio.h>//printf函数的头文件int a=100;//全局变量int main()//main函数是一个程序的入口,main有且仅有一个{ printf("Hello World!\n");//printf 是一个库函数,库函数使用得包含一个头文件stsio.h int age = 20;//age这个变量的创建其实是需要在内存开辟空间的 //关键字sizeof:C语言中sizeof是用来计算变量或者使用类型创建的变量的大小,原创 2021-10-18 12:01:46 · 307 阅读 · 2 评论 -
从C语言出发
我叫李**,来自哈理工;本人打算用2个半月时间学习C语言;学习方式:视频+书籍+CSDN分享学习时间:每天3.5小时,一周24.5小时最想进入的一家互联网公司:字节跳动原创 2021-10-16 10:40:18 · 263 阅读 · 3 评论