自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 结构体内存分配规则

(4): long int 在32位平台下,4字节对齐,即存放 long int 型的变量,起始内存单元的编号是4。以4字节对齐,即存放 double 型变量的起始地址,必须是4的倍数, double 变量占8字节。以8字节对齐,即存放 double 型变量的起始地址,必须是8的倍数, double 变量占8字节。对齐,即存放 float 型的变量,起始内存单元的编号是4的倍数即可。对齐,即存放 int 型的变量,起始内存单元的编号是4的倍数即可。类型数据,无更大字节数的基本类型数据,以。

2023-11-22 22:02:48 62 1

原创 结构体指针及应用

/p->name不可直接赋值,因为它是字符数组的名字,是个常量。//看p占几个字节,在sizeof上,它返回的是一个64位 (8bytes)的无符号整型,所以占位符应该是%lld。//定义一个结构体类型stu。//结构体新的类型名=struct stu。//通过各种方法去引用结构体变量的成员。//把字符串拷到p指向的name的成员,//定义一个结构体数组。//把lucy的地址赋给p。//把boy的地址给p赋值。//定义一个结构体指针变量。//给girl的num赋值。

2023-11-20 23:04:03 21 1

原创 逆转字符串

/声明一个临时数组re 以存储反转后的字符串。当你逆转一个字符串时,如果直接在原始字符串上进行修改,可能会导致错误的结果,因为逆转过程涉及到交换字符的位置。为了避免这种问题,通常会创建一个临时数组,将逆转后的字符存储在其中,然后再将结果复制回原始数组。,分别指向原始字符串和临时数组的末尾。通过在循环中逐个字符处理,将字符逆转后存储在。函数是C语言标准库中的一个函数,用于计算字符串的长度。// ASCII字符,字符串小于127的。中的字符复制回原始数组,实现字符串的逆转。数组的末尾,表示反转字符串的结束。

2023-11-17 22:59:00 26 1

原创 结构体数组

结构数组book共有5个元素,book[0]-book[4],每个数组元素都具有struct books的结构类型。结构体数组与数值型数组的不同之处:每个数组元素都是一个结构体类型的数据,它们都包括各个成员项。printf("平均成绩为:%f\n", (float)sum / 3);struct 结构名 数组名[元素个数]={初值表列};//结构体数组的使用,结构数组名【下标】.成员名。一般形式:struct 结构体名 {//定义一个结构体数组,然后初始化。//屏蔽4996警告。

2023-11-13 23:36:10 29

原创 结构体变量初始化

如 stu1 . name 表示学生stu1的姓名。数组名是一个常量,不能赋值,使用strcpy。:定义结构体变量时,顺便给结构体变量赋值(//成员变量是字符数组时,不可用等号赋值。结构体变量成员引用方法:结构体变量。

2023-11-09 23:14:34 44 1

原创 初识结构体

eg:对于记录一本书,需要 char型的书名,char型的作者名,float型的价格,使用基本类型数据和数组解决起来有些困难,而结构体可以更方便解决。还有一种方法是使用匿名结构体来定义结构体变量:它的缺点是不能再定义相关类型的数据了。(若干相同或不同类型的数据构成的集合)目的:将不同类型的数据整合到一起,形成一个整体,便于引用。下面代码中,9和12行分别为定义结构体变量的方法。定义完结构体类型,我们就可以用类型定义变量。struct 结构体名 结构体变量名;两个匿名结构体变量,编译器是不认同的。

2023-11-09 17:40:01 16 1

原创 指针作为函数的参数

调用函数的时候传变量的地址,在被调函数中通过*+地址来改变主调函数中的值。给被调函数传数值,只能改变被调函数形参的值,不能改掉主调函数实参的值。:只能将一个数组名(数组的首地址)传进去,即只把数组的地址传进去。形参:定义被调函数时,函数名后边括号里的数据。但是我们可以通过传地址改变,如下。实参:调用函数时传的参数。

2023-10-31 23:36:17 31 1

原创 指针数组与数组指针

/定义了一个数组指针变量q,q指向的是整型的具有5个元素的数组。:int*p[5];//定义了一个整型类型的指针数组p,它包含了5个整型指针。int a[10]: a是个int*类型的指针,是a[0]的首地址。q+1:表示是跳了一个有5个整型元素的一维数组。//跳5个整型,与列有关。p+1:指向p数组的下一个元素,即。(二维数组:4行5列。int[2][3][4]:表示2个二维的数组。:是数组,可以保存数组元素的地址。:是指针,指向数组的指针。

2023-10-31 21:45:05 15 1

原创 字符串与指针(部分)

③realloc()函数,是对已申请的空间动态扩容。扩容成功,则返回空间的起始地址,扩容失败则返回NULL,会直接丢弃原有空间。相关函数还有calloc()函数,realloc()函数。这行代码用于动态分配一个包含 9 个字符的内存块,并将指向这个内存块的指针存储在 str 变量中。①malloc()函数,是动态申请一块儿内存空间,空间内的存储值为随机值。②calloc()函数,是动态申请一块儿内存空间,并对其进行初始化。文字常量又称为“字面常量”,包括数值常量、字符常量和符号常量。

2023-10-26 23:24:13 16

原创 简单写一点点

因为" = "运算符是从右至左结合,加入先把2赋值给a,但此时a还没有定义,所以违反了c中先定义后使用原则。自定义函数在主函数前定义,当然也可以在主函数后面定义(必须把定义的函数头头引到主函数前)C语言中函数还是从main函数开始执行,main函数再调用其他函数,包括自定义的函数。补:如果你多次给同一个变量赋值,最终只会保留最后一次赋值的结果。returm 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0,说明程序正常退出,返回到主程序继续往下执行。

2023-10-23 23:14:01 18

原创 指针中的一些事

指针 p 向后移动2个位置来访问数组中的第3个元素;指针加多少,就是往下指几个元素。a是数组名,它是指向数组第一个元素的指针,可以不用地址符;其他数组元素则是需要的;**p二级指针 ,***p三级指针,可以用比它们第一级的指针取地址。:指一个数据块,不能被赋值,而是访问指针p所指向的地址上储存的值;:本身是个数组,有相同类型变量构成的集合。:指针变量(内存地址,通常指向某个数据的地址);、可以相减(p-q),相差的是元素的个数。

2023-10-22 23:50:28 20

原创 char 类型 数组中元素的颠倒

3、使用for循环遍历数组,定义一个中间变量它的作用是在两个数组元素之间进行交换,实现颠倒。2、我们需要获取数组长度,确保在颠倒数组元素时,可以正确访问数组并不超过数组的边界。这里使用了两次for循环,第一次是用于颠倒数组元素,第二次是打印颠倒后的数组元素。char类型数组,初始化时里面是字符类型,需用单引号 eg:'a'还有n/2,我们只需要遍历一半的数组,这样才能实现颠倒。

2023-10-20 00:24:02 87 1

空空如也

空空如也

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

TA关注的人

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