C语言学习
文章平均质量分 60
嵌入式设计开发er
这个人很懒
展开
-
C语言顺序表代码实现
顺序表: 顺序表的创建: 定义结构体:结构体成员包含整形数组和一个记录最后一个数据下标的整形变量: #define DATASIZE 5 typedef struct { int data[DATASIZE]; int last; }sqlist_t; 编写创建顺序表的函数:返回创建顺序表的首地址 sqlist_t *sqlist_create(void) { sqlist_t *list = NULL; list = malloc(sizeof(sqlist_t)); if(list == N原创 2021-12-11 15:41:45 · 1559 阅读 · 0 评论 -
C语言数据结构概念
常见数据结构 顺序表、链表、队列、栈、树、图 线性结构:任意一个节点至多有一个前驱节点,一个后继节点 顺序表、链表、队列、栈 非线性结构:任意一个节点可以有多个前驱或多个后继节点 树、图 存储结构: 顺序结构存储 链式结构存储 顺序表:在连续的地址中储存数据 优点: 地址连续,顺序访问快速简单 缺点: 定义时无法确定内存的大小 插入或删除数据时,会有大段的数据在进行移动 顺序表常见操作: 1.完成查找、删除、修改 2.完成顺序表是否为空 3.完成获取顺序表中元素个数的函数 4.完成顺序表清空的函数原创 2021-12-11 13:59:29 · 834 阅读 · 0 评论 -
C高级(三)动态内存
动态内存: 动态内存管理:(谁开辟谁释放(free函数释放))释放后把指针置空 #inlcude <stdlib.h> 系统接口函数: void *malloc(size_t size):在堆区申请size个字节的内存的地址,失败返回NULL 也可以开辟数组 void free(void *ptr):释放ptr指针指向的内存 void calloc(size_t nmemb,size_t size):专门用来开辟数组 calloc(10,4) <==> malloc(104) vo原创 2021-12-05 23:26:12 · 231 阅读 · 0 评论 -
C高级(二)函数高级与构造类型
函数高级: 函数的传参: 值传递:输入型参数,是向函数内部输入了一个数据。函数内部是无法利用参数向外部输出数据的 地址传递:(传递变量自身的地址,因为想要改指针内部存的地址,必须把这个指针本身的地址给它才能改) 第一种情况:指针获取变量地址,可以利用该指针修改指向内存中的数据,所以若形参定义为指针,则就是要利用该指针修改外部调用者某个变量的值,则输出(输出型参数) 第二种情况:由于形参有自己独立的内存,若做值传递,则形参需要开辟等同的大小的内存来接纳值,为了降低内存开销,也会采用地址传递,但该传递也是向函数原创 2021-11-29 21:53:20 · 652 阅读 · 0 评论 -
C高级(一)C语言指针
指针 指针:(在64位机上,无论什么指针类型都占用8个字节,32位机是4字节) 含义:一个数据类型,用于存储一个地址值 地址:为了快速寻找到指定的内存单元,对内存中的每一个字节进行编址, 在64位机上地址的带下统一是8字节,一个指针变量的大小就是8字节 变量名:是对某一块内存地址的抽象表示,可以理解为地址的别名,若要拿到变量的真实地址,则需要做(&变量)运算 定义指针变量的目的:由于指针记录下来了某块内存的地址,则可以利用指针间接访问到该内存(读取、写入) 指针更多会用在函数的传原创 2021-11-29 00:38:45 · 571 阅读 · 0 评论 -
C语言基础(二)——变量与常量
变量: 局部变量:定义在某个大括号范围之间的变量 生命周期: 执行到定义时分配内存空间,大括号结束则内存被释放 作用域: 只能大括号范围内访问该变量 全局变量:定义在所有函数之外的变量 生命周期: 程序运行时,分配内存空间,整个程序结束时释放内存空间 作用域: 在程序任意的位置都可以访问 变量的修饰符: auto:变量的默认修饰符,可以省略不写,表示变量的内存由系统自动分配与释放 const:常量修饰符,在程序运行的过程中其值不可更改 signed:变量的默认修饰符,有符号 unsigned:无符号,让数据原创 2021-11-23 20:51:28 · 652 阅读 · 0 评论 -
C语言基础(五)——数组与函数
数组: 一维数组:变量的集合 语法:数据类型 数组名称[数组的大小]; 数组元素的访问:数组名[下标] 数组的下标是从0开始到数组的大小减1结束,若超出这个界限,属于数组越界的行为 数组越界是危险的行为,不建议有这样的操作 数组的大小一旦被固定,就无法更改其大小 求字节运算符:sizeof(数据类型 或 变量名):获取数据类型或变量占用的内存大小,单位字节,运算的结果为long类型 变量的默认值:在一个局部定义后未初始化时,是有一个值的,该值是上一个程序遗留下来的值,没有实际的意义,称之为垃圾值 字符原创 2021-11-23 20:32:07 · 417 阅读 · 0 评论 -
C语言基础(四)——循环语句
循环结构: goto:建议少用 语法: 标志: goto 标志; //跳转到指定的标志 while循环: 语法: while(条件表达式) { //循环体,重复执行的代码 } continue:结束本次循环,进入下一次循环 break:跳出当前循环 循环的三要素: 1.循环的初始语句 2.循环的终止语句 3.指向循环结束的语句 通过控制以上三个语句,就可以控制好循环的次数 do…while:无论条件是否成立,循环体至少被执行一次 语法: do{ //循环体,重复执行的代码 }whil原创 2021-11-22 22:18:02 · 927 阅读 · 1 评论 -
C语言基础(三)——位运算与选择结构
位运算与选择结构: 位运算:>> << & | ^ ~ 左移<<:将数字的二进制位整体向左移动指定的位数 int a = 10; int b = a << 2; //b = 40 0000 1010 <<2 0010 1000 =40 右移>>:将数字的二进制位整体向右移动指定的位数 int a = 10; int b = a >> 2; //b = 2 0000 1010 >>2原创 2021-11-21 12:36:59 · 502 阅读 · 1 评论 -
C语言基础(一)——基本结构与进制转换
C语言的基本结构: #include <stdio.h> //预处理指令,在编译时要处理的代码,在编译时会从库指定的路径中寻找 //stdio.h文件,将该文件中的代码复制粘贴到此处 int main(void) //main是程序的入口函数,void表示没有参数,int表示返回值类型 { //功能实现部分 return 0; //结束当前函数,并向外返回一个值,人为规定,0状态返回表示程序正常结束,非0为异常结束 } 进制数: 二进制:0-1 二进原创 2021-11-20 23:05:25 · 1115 阅读 · 0 评论
分享