自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 链表的创建、修改、删除、排序、销毁

gdb a.out core 找到错误位置。运行代码使其产生段错误会生成一个包含错误的core文件;编译时要加上-g选项、使用gdb调试生成的代码;3. core文件调试法(只能调试段错误)编译代码加入-g选项;

2024-05-07 17:21:21 170

原创 学习数据类型的第二天

2. 枚举常量默认为int类型,第一个枚举常量的值默认为0,后续常量的值为前一个枚举常量的值+1;5. 内存碎片:由于频繁malloc和free小空间导致大的连续空间中间存在小空间被占用而无法得到申请空间的现象;2. 共用体每个成员变量空间共享,由其内部最大的成员变量类型决定空间大小;1. 空间连续,访问数据方便,但空间必须是连续的,小空间无法利用;内存大端:内存低地址存低数据位,内存高地址存高数据位;1. 空间不需要连续(访问数据麻烦,可以利用小的分散的空间)成功堆区空间的首地址,失败返回NULL;

2024-05-06 22:17:47 408

原创 结构体学习的第一天

1. 结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中;其中,数据类型可以是基本数据类型、数组、构造的数据类型;2. 结构体大小必须为最大成员变量类型的整数倍;-> 结构体指针类型访问成员变量。2. 局部初始化:未给定初值的为0值。. 结构体变量类型访问成员变量。最终类型是由成员变量的类型决定的;数据类型1 成员变量1;数据类型2 成员变量2;struct 类型名。

2024-05-05 19:45:26 280

原创 数组学习的第三天

--相当于*(a+0);3. * (*(a+m)+n) ---- a[m][n]的值;2. * (a[m]+n) ----- a[m][n]的值;二维数组的数组名是指向第一行所有元素的一个数组指针;指针函数是函数,只不过返回值是一个指针;函数指针是指针,指针指向一个函数。注意:不能返回局部变量的地址;二维数组传递数组指针和长度;1. 二维数组和指针的关系。5. 指针函数和函数指针。

2024-04-29 17:58:27 96

原创 指针学习第二天

(与1等价,表示const修饰 *p ,*p 不可改变,而 p 可以改变,不能用 p 修改它指向空间中的值) 只能使用指针指向空间的数据,不能修改此数据;(const修饰 p ,p不可变,但 *p 可以改变,一定要初始化,否则该指针后续无法指向其余空间,永远为野指针)void * 作为函数参数,可以传入char *、double *、 int * 的指针,实现一个函数原型下的不同类型指针的传参;(与4等价,const同时修饰 p 和 *p ,二者均无法改变,一定要初始化)

2024-04-28 18:11:13 317

原创 学习指针的一天

3. 指针变量:一个用来存放指针(地址)的变量;使用变量就是使用变量中存放的指针,有时也将指针变量称为指针;2. 指针变量指向的空间(也就是* p),修改*p的值并不能改变指针变量的指向,只是利用指针修改对应空间中的值;2. 指针:指针就是地址、地址就是指针;实参将地址给形参,形参是实参的指针,可以通过对形参取*改变实参的值;两个相同类型的指针相减:获得两个地址中间相差了多少个该类型的元素;1. 指针变量本身(也就是p),修改p的值可以改变指针的指向;数组的数组名是指向数组第一个元素的指针;

2024-04-27 22:08:44 396

原创 嵌入式学习第九天

(因为宏函数是代码的替换,展开时就会增大体积,而函数有调用的过程不会展开。#include "stdio.h" ---当前目录下寻找stdio,若找不到再去系统目录下找;4. 宏函数执行效率高,函数因为有调用和传参的过程,会占用系统资源的开销,执行效率就低一些;2. 宏函数是在编译时加载到程序中,而函数是运行时加载到程序中;#ifndef 宏名 ----若没有定义该宏就加入后续代码;#ifdef 宏名 ----若定义了该宏就加入后续代码;宏函数:函数较短的场景(例如判断是否为闰年);

2024-04-25 18:31:23 178 1

原创 二维数组的学习

---将字符串“hello world\0”拷贝到str数组中;两个字符串从左至右依次,比较第一个不相同的字符对应的ASCII码,ASCII码大的对应的字符串大。int a[2][3],共6个元素,占据24字节的空间;2. 字符型数组:一组字符的集合,最末尾不需要一定是‘\0’字符;-------清零;strlen ---- 给定一个字符串获得其长度;1. 字符串:一定包含末尾的'\0'字符;

2024-04-23 18:13:55 808

原创 一维数组的学习

注意: 数组名的要求与变量名的要求保持一致;1. 数组空间的大小 = 数组每个元素所占空间大小 * 元素个数;6. sizeof(a) / sizeof(a[0]):元素个数。1. 冒泡排序:循环比较,将小的往前放,大的往后放,反之亦然;1. 元素的访问:数组名[元素下标];5. sizeof(a[0]):每个元素所占空间大小;2. 数组的定义: 数据类型 数组名[元素个数];4. sizeof(a):数组所占空间大小;2. 数组的元素是有限的;2. 元素的初始化:初始化≠赋值。

2024-04-22 17:08:28 216

原创 嵌入式学习第五天

在for循环之前先执行A,判断是否满足条件B,然后执行D,判断C,执行D,直到不满足B循环结束。(即按照 D->C->B->D->C->B,直到不满足B。注意:里层switch结束后需要加break,若不加外层switch将继续向下执行;switch只与case后的值比较一次,然后顺序执行;注意:case后面必须是常量,不能是常量表达式/变量;while(1)------死循环。case 常量3:语句块3;2. 有规律的代码;4 goto:会破坏代码的可读性,一般在出错时使用;外层执行一次,里层执行一遍;

2024-04-19 17:33:12 289

原创 嵌入式学习第四天

3. 嵌套分支:须同时满足才能判断最里层,最多嵌套3-5层,若深层次的嵌套,会影响代码的可读性。2. puts:在终端打印一行字符串,会多打印一个‘\n’字符;5.scanf使用 %c的形式,是接受一个非空格和‘\n’的字符;1. scanf :(从终端接收接收非输入控制符、接收输入控制符、接收多个输入控制符)3.除%c外,均无法接收‘ ’ 和‘\n’字符;3. gets:从终端接收一行字符串,会去掉从终端接收的‘\n’字符;表达式1:表达式2;注意:1. 若有非输入控制符,要原封不动的从终端输入;

2024-04-18 17:50:51 167 1

原创 嵌入式学习第三天

(练习注:在16位PC机环境下,int类型数据占 2 字节,short类型数据占 2 个字节,long类型数据占 4 个字节,double类型数据占 8 个字节。打印多个输出控制符的个数要与表达式的个数匹配、printf表达式的值为实际打印在终端上的字符的个数(注意加上\0字符)。(同类型空间越大精度越高、无符号精度大于有符号、浮点数精度大于整数)2. printf --- 打印非输出、多个输出控制符。1. 算术运算(+ - * / % ++ --)自增和自减只能对变量进行操作。

2024-04-17 18:01:36 190

原创 嵌入式学习第二天

(变量名只能由字母、数字、下划线组成,且不能由数字开头;包括预处理—编译—汇编(将汇编代码编译成二进制代码)—链接(将二进制码编译成可执行程序)注意十进制转二进制、八进制、十六进制时要将除法计算后所得的余数进行逆序排列!整数类型:有符号 signed 无符号 unsigned。浮点数类型:float 单精度 4字节。变量:在程序运行中可做修改的量,使用前需进行定义。泊尔类型:bool 非零值均为逻辑真值。缺省类型:搭配void/指针使用。常量:即数值不变的量;

2024-04-16 21:06:31 135

原创 嵌入式学习第一天

ls touch/rm(touch建文件时需加后缀) mkdir/rmdir cd cp mv(移动/修改文件名)gcc filename.c -o filename (指定生成某可执行程序);2、登录后用pwd查看,普通用户为/home/name,root用户为/root;#目录结构(Linux中有普通用户和超级用户之分,超级用户有且只有一个root)vim filename.c (打开filename.c文件)gcc filename.c (默认编译a.out)

2024-04-15 21:19:09 320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除