自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构(一)

线性关系 (1:1)、层次关系(1:N)、网状关系(N:N)

2023-09-25 17:00:50 82 1

原创 C语言 动态内存(二)

释放堆空间后,p成了空悬指针 动态分配失败。malloc与free是配对使用的, free只能释放堆空间。如果malloc返回的指针值丢失,则所分配的堆空间无法回收,称内存泄漏,删除一个指针p (free(p);),实际是删除了p所指的目标(变量或对象)释放了它所占的堆空间,而不是删除 p本身量或对象等)1、野指针:不是NULL指针,是指向“垃圾”(当前不需要的指针)内存的指针。

2023-09-23 20:14:26 75 1

原创 C语言 动态内存

malloc 本身并不识别要申请内存是什么类型,它只关心内存的总字节数 malloc申请到的是一块连续的内存,有时可能会比所申请到的空间大,有时会申请不到内存,返回NULL申请的空间大。静态存储分配: 通常定义变量,编译器在编译时都可以根据该变量的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。

2023-09-23 19:52:29 78 1

原创 C语言 共用体与typedef

这种数据构造类型称为共用体,简称共用。共用体 在定义,说明和使用形式上与结构体相似。两都本质上的不同仅在于使用内存的方式上。例如:typedef int integer;(此时定义的integer等价于int );形式为:typedef <已有数据类型> <新数据类型>;在C语言中,允许使用关键字typedef定义新的数据类型。union 共用体名。2、定义结构体时定义。

2023-09-23 18:44:46 83 1

原创 C语言 结构体数组(2)

【代码】C语言 结构体数组(2)

2023-09-23 12:29:54 34 1

原创 C语言 条件编译与结构体

编译器根据条件的真假决定是否编译相关的的代码,char 占十个字节;**** **** **结构体赋值方式2、(通过函数赋值)结构体赋值方式3、 (定义时赋值)(此时系统会自动补齐后面两个字节)float 占四个字节;结构体赋值方式1、(直接赋值)struct <结构体名>{结构体大小:(内存对齐)三、直接给if赋予数字。

2023-09-23 11:20:08 46 1

原创 C语言 递归函数与函数指针

函数指针变量的一般形式为:<数据类型>(*<函数指针名称>)(<参数说明列表>);递推阶段:从原问题出发,按递归公式递推从未知到已知,最终到达递归终止条件。回归阶段:按递归终止条件求出结果,逆向逐步供稿递归公式,回归到原问题求解。(*<函数指针名称>)中,*说明为指针()不可缺省,表明为函数的指针。函数指针:函数指针用来存放函数的地址,这个地址是一个函数的入口地址。递归函数是指一个函数的函数体中直接或间接调用了该函数自身。<参数说明>应该与函数指针所指向的函数的形参说明保持一致。递归函数例题:生兔子。

2023-09-22 20:24:39 104 1

原创 C语言 指针函数

函数的局部变量用作返回值时,会生成一个局部变量的拷贝用作返回值,之后局部变量会被系统回收, 函数不能返回局部变量的地址,因为如果返回局部变量的地址,系统回收后,指针指向的内容就无意义了,但是对于静态变量也可以返回其指针。返回值:全局变量的地址 / static 变量的地址 / 字符串常量的地址。指针函数是指一个函数的返回值 为地址量的函数。<数据类型> * <函数名称 > (<参数说明>){为什么不能返回局部指针变量,却可以返回局部变量?

2023-09-22 17:57:47 120 1

原创 C语言 函数的传参——数组

2、复制传递方式 :实参为数组的指针,3、地址传递方式 :实参为数组的指针,地址传递:删除多余空格。1、全局数组传递方式。

2023-09-22 10:34:28 2457 1

原创 C语言 void 指针与const

例如 char 型操作 sizeof(char) 字节,而 int 则要操作 sizeof(int) 字节。而在 GNU 中则允许,因为在默认情况下,GNU 认为 void * 和 char * 一样。(此时p的地址不可以修改,*p可以修改)3、const int *const p;例如:1、const int *p;(此时*p存储的值不可以变,但是p的地址可以变)一般形式:const <数据类型> * <指针变量名称> [<指针运算表达示>]void指针:是一种不确实数据类型的指针变量,它可以。

2023-09-21 23:33:31 197

原创 C语言 多级指针

再比如,int ***p,p+1移动一个int ** 变量所占的内存空间。多级指针的运算:指针变量加1,是向地址大的一方移动一个目标数据,比如,int **p;p+1移动一个int*变量所占的内存空间;3、而把指向一级指针变量的指针变量称为二级指针变量简称二级指针。多级指针与指针数组:指针数组也可以用另外一个指针来处理。<存储类型> <数据类型> **<指针名>一句话:指向指针的指针!例如 : int ** a;

2023-09-21 22:16:42 56

原创 C语言 指针数组

pa[0]=a[0];//等价于pa[0]=&a[0][0] 此时pa[0]指向了一维数组的a[0]的第一个元素a[0][0]pa[1]=a[1];//等价于pa[1]=&a[1][0] 此时pa[1]指向了一维数组的a[1]的第一个元素a[1][0]一般形式:<存储类型> <数据类型> *<指针数组名>【<大小>】指针数组名表示 该指针数组的起始地址。指针数组:是由若干个具有相同。的指针变量构成的集合。

2023-09-21 22:16:29 30

原创 c语言 字符指针与字符串

(1)、初始化字符指针是把内存中字符串的首地址赋予指针,并不是把该字符复制到指针中。(2)、在c编程中,当一个字符指针指向一个字符串常量时不能修改指针指向的对象的值。//错误,字符串常量不能修改。例如:char str[]="Hello World";例如:char *p="Hello World";

2023-09-16 11:48:27 116 1

原创 C语言 指针与二维数组

方括号中的常量表达式表示指针加1,移动几个数据 当用行指针操作二维数组时,表达式一般写成1行的元素个数,在c语言中,二维数组的元素连续存储,按行优先存。多维数组就是具有两个或两个以上下标的的数组。例如:int a[2][3];

2023-09-15 00:34:10 34 1

原创 C语言 指针与数组

注意:指针变量和数组 的指针(或叫数组名)在本质上不同,指针变量是地址变量,而数组的指针是地址常量(不可以改变)x[i]、*(px+i)、*(x+i)和px[i]具有完全相同的功能:访问数组第i+1个数组元素。设指针变量px的地址值等于数组指针x(即指针变量px指向数组的首元数),则;,数组元素的地址 指数组 元素在内存中的起始地址。2、一维数组的数组名为一维数组的指针(起始地址)易错点:int a[]={1,6,9,12};p++ 会报错,a+1、*(p+2)正确。p[i] 等同于*(p+i)

2023-09-14 23:49:23 42 1

原创 C语言 指针的运算

px-n表示的实际位置的地址量是: (px) - sizeof(px的类型)* n。px+n表示的实际位置的地址量是:(px) + sizeof(px的类型) * n。以指针变量所存放的地址量作为运算量而进行的运算。只能进行赋值运算、算术运算和关系运算。

2023-09-14 23:16:27 37 1

原创 c语言 指针(三)

在32位系统中,指针通常占4个字节(32位),而在64位系统中,指针通常占8个字节(64位)。这是因为32位系统的地址空间只有4GB,而64位系统的地址空间可以达到16EB(exabyte)。3、&px:指针变量占用的存储区域的地址,是个常量。2、*px:指针所指向的对象,内容是数据。2、把一个已有地址值的指针变量赋给具有相同数据类型的另一个指针变量,1、把一个普通变量的地址赋给一个具有相同数据类型的指针。例如:float a,*px,*py;3、把一个数组的地址赋给相同数据类型的指针。

2023-09-14 23:06:17 37 1

原创 c语言 指针(二)

把变量a的地址作为初值赋予了刚说明的int型指针pa;<存储类型> <数据类型> *<指针变量名>指针的存储类型是指针变量本身的存储类型;例如:int a ,*pa=&a;例如:char *pName;

2023-09-14 22:32:13 37 1

原创 c语言 指针(一)

2、有效地表示复杂的数据结构。4、得到多于一个的函数返回值。变量的地址是起始地址,从低向高放,编译或函数调用时为其分配内存单元。地址和变量:在计算机内存中,每个字节单元,都有一个编号,称为地址。指针的作用:1、使程序简洁、紧凑、高效。1字节=8比特(1byte=8bit)用来存放地址的变量,称为指针变量。内存单元的地址称为指针。

2023-09-14 21:57:44 30

空空如也

空空如也

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

TA关注的人

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