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