
c语言
文章平均质量分 67
天影云光
hello world!
展开
-
数据结构自学教程——算法的时间复杂度和空间复杂度
1.前言1.1 什么是数据结构?数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。1.2 什么是算法?算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。2.算法效率2.1 如何衡量一个算法的好坏如何衡量一个算法的好坏呢?比如对于以下斐波那契数列:long long Fib(int N){ i原创 2022-03-09 02:15:00 · 739 阅读 · 53 评论 -
很多程序员都无法写出正确的二分查找
二分查找(折半查找)原创 2022-03-08 17:45:10 · 1081 阅读 · 11 评论 -
c语言自学教程——博文总结
时光荏苒,岁月如梭。c语言自学教程:初阶:c语言自学教程——分支语句和循环语句.c语言自学教程——函数.c语言自学教程——数组.c语言自学教程——操作符.c语言自学教程——初遇大魔王指针.进阶:c语言自学教程——再战大魔王指针.c语言自学教程——字符函数和字符串函数.c语言自学教程——自定义类型:结构体,枚举,联合.c语言自学教程——动态内存管理.c语言自学教程——深度剖析数据在内存中的存储.c语言自学教程——文件操作.c语言自学教程——程序环境和预处理.c语言应用系列:学原创 2022-03-07 02:00:00 · 791 阅读 · 27 评论 -
c语言刷题小练——不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足 -10 \le n \le 1000−10≤n≤1000进阶:空间复杂度 O(1)O(1),时间复杂度 O(1)O(1)...原创 2022-03-04 10:39:09 · 572 阅读 · 46 评论 -
c语言自学教程——程序环境和预处理
1. 程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码2. 详解C语言程序的编译+链接2.1 翻译环境组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的原创 2022-02-27 13:14:52 · 961 阅读 · 35 评论 -
c语言自学教程——文件操作
1. 为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,原创 2022-02-22 20:35:00 · 1630 阅读 · 37 评论 -
scanf/fscanf/sscanf,printf/fprintf/sprintf函数的对比
文章目录1.1 printf(将数据打印到屏幕上)1.2 scanf(从键盘获取数据)2.1 fprintf(将数据打印到文件中)2.2 fscanf(从文件中获取数据)3.1 sprintf(将结构体数据转化成字符串)3.2 sscanf(将字符串中内容转变成结构体信息)1.1 printf(将数据打印到屏幕上)从标准输入流(stdin)上进行格式化输入的函数例子#include<stdio.h>int main(){ printf("hello\n"); int i=100;原创 2022-02-19 16:41:40 · 1179 阅读 · 27 评论 -
修炼内功——理解函数栈帧创建和销毁
栈帧原创 2022-01-31 14:14:59 · 1316 阅读 · 26 评论 -
c语言自学教程——深度剖析数据在内存中的存储
数据类型详细介绍整形在内存中的存储:原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析原创 2022-01-29 19:57:50 · 605 阅读 · 19 评论 -
学好c语言,自己写项目自己玩——通讯录
文章目录1. 实现一个通讯录1.1 编程要求1.2 模块化编程要点1.3 contact.h文件源码1.4 test.c文件源码1.5 contact.c文件源码2. 改进通讯录2.1 用枚举改进test.c中的目录2.2 用动态内存管理改进项目1. 实现一个通讯录1.1 编程要求通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有原创 2022-01-27 21:00:17 · 1530 阅读 · 18 评论 -
c语言自学教程——动态内存管理
1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了。2. 动态内存原创 2022-01-26 12:26:20 · 347 阅读 · 23 评论 -
c语言自学教程——自定义类型:结构体,枚举,联合
结构体类型的声明结构体初始化结构体成员访问结构体传参原创 2022-01-23 20:08:31 · 589 阅读 · 33 评论 -
c语言自学教程——字符函数和字符串函数
strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror memcpy memmove memcmp原创 2022-01-21 19:11:20 · 1290 阅读 · 23 评论 -
c语言刷题小练——指针和数组
9. 指针和数组面试题的解析//一维数组int a[] = {1,2,3,4};printf("%d\n",sizeof(a));printf("%d\n",sizeof(a+0));printf("%d\n",sizeof(a));printf("%d\n",sizeof(a+1));printf("%d\n",sizeof(a[1]));printf("%d\n",sizeof(&a));printf("%d\n",sizeof(&a));printf("%d\n",原创 2022-01-20 17:09:33 · 1157 阅读 · 30 评论 -
c语言自学教程——再战大魔王指针
. 字符指针2. 数组指针3. 指针数组4. 数组传参和指针传参5. 函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数9. 指针和数组面试题的解析原创 2022-01-19 20:39:34 · 1096 阅读 · 19 评论 -
c语言自学教程——初遇大魔王指针
指针是什么指针和指针类型野指针指针运算指针和数组二级指针指针数组原创 2022-01-17 13:03:16 · 857 阅读 · 19 评论 -
c语言自学教程——操作符
操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员原创 2022-01-16 14:11:00 · 340 阅读 · 11 评论 -
学好c语言,自己写游戏自己玩——猜数字
使用函数调用、循环语句、随机数生成语句实现的小游戏#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("********************\n"); printf("**** 1.play ****\n"); printf("**** 0.exit ****\n"); printf("********************\n");}vo原创 2021-10-31 16:13:08 · 1932 阅读 · 0 评论 -
学好c语言,自己写游戏自己玩——三子棋
game.h文件#define ROW 3#define COL 3#include<stdio.h>#include <time.h>#include <stdlib.h>//初始化棋盘void InitBoard(char board[ROW][COL], int row, int col);//打印棋盘void DisplayBoard(char board[ROW][COL], int row, int col);//玩家下棋void p原创 2021-11-14 20:54:03 · 263 阅读 · 0 评论 -
学好c语言,自己写游戏自己玩——扫雷
game.h//头文件的包含#include <stdio.h>#include <time.h>#include <stdlib.h>//符号的声明#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUNT 10//函数的声明//初始化棋盘void InitBoard(char board[ROWS][COLS], int rows,原创 2021-11-14 21:08:32 · 3381 阅读 · 1 评论 -
c语言自学教程——分支语句和循环语句
if语句格式:#include <stdio.h>int main(){ if(表达式)//若表达式为真,则输入语句列表1内容。反之输入语句列表2内容 { 语句列表1; } else { 语句列表2; } return 0;}运用int main(){int a原创 2021-10-30 18:10:36 · 755 阅读 · 1 评论 -
c语言自学教程——数组
文章目录一维数组的创建和初始化数组的创建数组的初始化一维数组的使用一维数组在内存中的存储二维数组的创建和初始化二维数组的创建二维数组的初始化二维数组的使用二维数组在内存中的存储数组越界数组作为函数参数数组名是什么冒泡排序函数的正确设计数组的应用实例1:三子棋数组的应用实例2:扫雷游戏...原创 2022-01-15 16:05:27 · 1617 阅读 · 11 评论 -
getchar和putchar函数
getchar原创 2021-11-07 19:45:33 · 468 阅读 · 0 评论 -
初识指针和数据类型
指针int main(){ int a = 3;//申请了4个字节的空间 int* p = &a;//存放地址的变量是指针变量,它的类型是int* *p = 20;//*-解引用操作符,通过*p找到a,相当于a=20 printf("%d\n", a);//20 printf("%d\n", sizeof(p)); //指针变量在32位平台上占4个字节,64位平台占8个字节,这里要跟普通变量区分开 return 0;}数据类型用指针打印数据类型中的东西.原创 2021-08-03 11:39:48 · 151 阅读 · 0 评论 -
第一个c语言程序的解析
#include <stdio.h>int main(){ printf("hello world"); return 0;}//后的内容表示注释,解释说明//前的代码#include <stdio.h>//包含一个叫stdio.h的文件 stdio=std(standard标准)+i(input)+o(output)=标准输入输出int main()//int是整型(整数类型)的意思//main-主函数-程序的入口-main函数有且只有一个/..原创 2021-07-22 14:58:57 · 162 阅读 · 0 评论 -
有四种常量
1.字面常量:数字eg.100;3.142.const修饰的常变量(常变量:本质上是变量但在这里被const修饰从而具有常属性。本质上是变量这点可以用数组证明)原本可执行#include<stdio.h>int main(){ int num = 4; printf("%d", num); num = 7; printf("%d", num);}现在出现错误,说明num变量现在拥有了常属性#include<stdio.h>int main(原创 2021-07-22 13:54:22 · 167 阅读 · 0 评论