C语言
不断学习过程中总结的笔记
放虎归山吃山楂
这个作者很懒,什么都没留下…
展开
-
ubuntu进行apt-get时候出现Package xxx is not available, but is referred to by another package 错误
apt安装软件时遇到问题原创 2022-06-08 17:37:46 · 12576 阅读 · 1 评论 -
算法 -- 排序
冒泡排序(经典中的经典) 前提:从小到大排序 4 6 3 8 5 j 第一趟 4 3 6 5 8 3 N - 1 - i 第二趟 3 4 5 6 2 N - 1 - i 第三趟 3 4 5 1 N - 1 - i 第四趟 3 4 分析: for //确定比较几趟 { for //依次拿出数据,准备进行比较 { if //比较 { //比较出大小,确定是否进行数据交原创 2022-05-24 14:44:17 · 142 阅读 · 0 评论 -
算法 -- 查找
姓名 年龄 身高小明 13 150小红 12 135例:查找所有身高为150cm的同学的信息顺序查找 - 什么样的数据都可以 typedef struct{ char name[10]; int age; int high; }stu_info; int seq_select(stu_info *s, int n, int h, stu_info *result) { int i; int con = 0; for(i=0; i<n;原创 2022-05-24 14:21:16 · 131 阅读 · 0 评论 -
队列相关操作
队列特点特点:从队尾的位置进行插入数据从队首的位置进行删除数据先进的数据先出(FIFO)顺序队列 - 顺序存储 - 数组定义 结构体#define MAX_SIZE 100typedef int data_t;typedef struct queue{ data_t data[MAX_SIZE]; int head; //队首的位置 int last; //队尾的位置}queue_t;创建队列 - 普通队列定义一个队列,在堆上分配空间 初始化队列,队首和队尾初始化 -原创 2022-05-24 13:15:09 · 87 阅读 · 0 评论 -
栈的相关操作
栈特点有一端是固定 - 栈底只能从栈顶的位置进行存/取数据先进的后出(FILO)顺序栈 - 顺序存储 - 数组定义 结构体#define MAX_SIZE 100typedef int data_t;typedef struct stack{ data_t data[MAX_SIZE]; //存储数据 int top; //保存栈顶的位置}stack_t;5.2.2 创建一个空栈//创建一个空栈 定义一个stack_t类型的变量,在堆上分配空间 给栈初始化,初始化栈顶原创 2022-05-24 11:04:32 · 78 阅读 · 0 评论 -
双向链表(带头结点)
双链表 - 两个方向 带头节点节点的定义typedef int data_t;typedef struct link_node{ data_t data; //数据域,用来保存数据 struct link_node *next; //保存后面一个节点的地址 struct link_node *pre; //用来保存前一个节点的地址}link_node_t;创建带头结点的双链表link_node_t *create_link_list(void){ //定义头结点,在堆上分配原创 2022-05-24 09:58:05 · 811 阅读 · 0 评论 -
单向循环链表--约瑟夫环
单向循环链表 - 约瑟夫环 //不带头结点的单向循环链表定义实现节点typedef int data_t;typedef struct node{ data_t data; //保存数据 struct node *next; //保存下一个节点的地址}link_node_t;创建空链表//创建空链表link_node_t *create_link_list(data_t x){ //定义头结点,在堆上分配空间 link_node_t *h = NULL; h = (l原创 2022-05-24 09:23:17 · 774 阅读 · 0 评论 -
线性表--单链表(2)
链表程序设计(链式存储的顺序表)单链表在内存中随机存储,需要通过指针建立数据元素之间的逻辑结构实现 - 节点定义 相关概念typedef int data_t;typedef struct node{ data_t data; //保存数据 struct node *next; //保存下一个节点的地址}link_node_t;//带头结点 - 第一个节点不存储数据 (用的多)//不带头结点 单向链表 - 最后一个节点的指针域为NULL创建空链表 - 带头结点的原创 2022-05-23 23:09:08 · 94 阅读 · 0 评论 -
数据结构常见笔面
数据结构常见笔试题顺序表和链表的区别顺序表存储(典型的数组)原理:顺序表存储是将数据元素放到一块连续的内存存储空间,相邻数据元素的存放地址也相邻(逻辑与物理统一)。 优点:(1)空间利用率高。(局部性原理,连续存放,命中率高) (2)存取速度高效,通过下标来直接存储。 缺点:(1)插入和删除比较慢,比如:插入或者删除一个元素时原创 2022-05-23 20:16:15 · 103 阅读 · 0 评论 -
C语言笔面题--高级
c高级常见笔试题枚举与# define宏的区别有哪些?枚举与宏的概述(1) 枚举:是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内(2) # define宏定义是用一个指定的标识符来代表一个字符串枚举与# define宏的区别(1) 在编译器中可以调试枚举变量,不能调试宏常量(2) # define宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候才确定其值(3) 枚举可以一次定义大量相关的常量,而# define宏一次只能定义一个空结构体所占的内存是多少?原创 2022-05-23 20:15:24 · 88 阅读 · 0 评论 -
C语言笔面试题--基础
c基础常见笔试题1.gcc编译器编译的四个流程预处理 、编译 、汇编 、链接gcc –E hello.c –o hello.igcc –S hello.i –o hello.sgcc –c hello.s –o hello.ogcc hello.o –o hello2.静态库和动态库区别a.命名上:静态库文件名的命名方式是“libxxx.a”,库名前加”lib”,后缀用”.a”,“xxx”为静态库名;动态库的命名方式与静态库类似,前缀相同,为“lib”,后缀变为“.so”。所以为“lib原创 2022-05-23 20:14:21 · 266 阅读 · 0 评论 -
线性表-顺序表(1)
1、基本知识线性表有n个相同类型的数据元素组成的有限序列, 他是最基本、最常用的一种线性结构。 线性表有唯一的开始和结束,除了第一个元素和最后一个元素外, 每个元素都有直接前驱和后继。表的特性:1)非空表第一个元素没有前驱2)非空表最后一个元素没有后继3)非空表中间元素有唯一前驱和唯一后继...原创 2022-05-23 19:53:52 · 133 阅读 · 0 评论 -
函数指针,指针函数与动态内存分配
函数指针:返回值类型 函数名(参数列表){return xx;}函数实现的时候要求:高内聚,低耦合。指针函数:返回值类型是指针类型的函数char * func(int a,int b){ return 地址;} 函数指针:它是一个指针,它指向一个函数返回值类型 (*函数名)(参数列表);函数指针数组:它是一个数组,数组中的成员是函数指针。 返回值类型 (*函数名[n])(参数列表);常见变量定义举例用变量a给出下面的定义 a) 一个整型数(An integer)原创 2022-05-23 10:37:35 · 235 阅读 · 0 评论 -
程序的诞生与运行
一 计算机的组成CPU主板内寸硬盘输入设备(键盘、鼠标、触摸屏)输出设备(显示器、扬声器)二 程序是如何产生的代码通过预处理编译汇编链接生成可执行文件三 程序是如何运行的1、起初程序存储在在硬盘之中2、加载程序到内存3、cpu从内存中读取指令和数据4、cpu根据指令和数据调用设备接口,通过显示器等设备进行显示和交互...原创 2022-01-06 14:07:13 · 212 阅读 · 0 评论 -
C语言 (控制语句小总结)
分支语句1)、if① if(10 <= weight&&weight <80)/正确的方式///if(10<=weight<80) //同一优先级结合方向从左到右 10 <= 5 为假 =0 0<80;成立建议:每次使用if判断多个条件时不要使用连续的判断多使用 && || 等逻辑运算符,避免出现编译不报告的错误②在没有加花括号的情况下({}),if 默认只控制它后面的一条语句。2)、if else嵌套注意:.原创 2020-08-22 10:29:17 · 290 阅读 · 0 评论 -
C语言(常规输入输出)
每次一个字符的输入输出输出:#include <stdio.h>int putchar(int c)功能:往终端上打印一个字符c参数:c 要打印的字符返回值:成功返回输出的字符c,失败返回EOF(因为0 ~ 255基本都有对应的字符)输入:#include <stdio.h>int getchar(void);功能:从终端上读一个字符参数:void代表没有参数;返回值:成功返回输出的字符c,失败返回EOF(-1)0~255unsigned char .原创 2020-08-22 09:38:24 · 272 阅读 · 0 评论 -
C语言(3)运算符及其优先级
运算符1.[] () . ->2.单目运算符+正号-负号++自家–自减& 取地址取值!取非 (非零为真,零为假)~ 取反(类型) 强制类型转换 比较危险,能不用就不用sizeof3.算数运算符/ 除法 取整% 取余 双目运算符 % 操作数(‘int’和‘double’)无效4.移位运算符 右移 <...原创 2020-08-21 13:44:26 · 679 阅读 · 0 评论 -
C语言(2) 常量与变量
常量字符常量man ascii或者 man ASCII查看ascii值‘A’ ‘!’ ‘1’ ‘C’ ‘Z’记忆’\0’ (0) ‘0’(48) ‘\n’(10) ‘A’(65) ‘a’(97)整形常量36 10 100 -19 0 十进制 0~90b1000 二进制 0 10664 八进制 0~70x123f 十六进制0x或0X 0~15 ==》 0-9 a-f或者0-9 A-F实型常量3.14 1.53.14e8 .原创 2020-08-20 20:35:52 · 206 阅读 · 0 评论 -
C语言(1) 数据类型以及存储类型
存储大小单位bit 只能用来存储0或1byte (字节)= 8bitKb 1024 byteMb 1024 KbGb 1024 MbTb 1024 Gb数据类型(32位操作系统)基本类型字符类型char 1字节 默认是有符号型 (arm编译器默认是无符号)unsigned char 无符号字符型signed 有符号字符型整形短整型 2字节..原创 2020-08-20 19:55:29 · 3051 阅读 · 0 评论