- 博客(4)
- 收藏
- 关注
原创 C语言-自定义类型详解
我们创建了一个联合体Un,并用它创建了一个变量 un ,可以看到整个联合体大小刚好是最大成员i 的大小,而每个成员的起始地址也都一样,其内存上就类似图上,c占第一个字节,i占四个字节,两者有公共区域,成员间的改变相互影响,因此,联合体在同一时间,只能使用一个成员变量。链表是不同与顺序表的,它在内存中不是连续的,而又需要彼此间能找到,这时需要类型链条的关系将前后关联起来,所以需要结构体来组成这样的一个个节点,既能存放数据又能找到下一个节点,而下一个节点跟他的类型是一样的,就有了自引用。//使用时嵌套初始化。
2024-07-09 13:08:47
645
7
原创 【C语言入门】常见内存函数
首先看他的返回值和参数类型都是void* ,原因是内存函数必须是兼容的,可以处理各种类型的数据,所以需要void* 接收 ,同样返回类型也是void*;1, 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。注意分情况,第一种:源地址大于目标地址,需要将源地址内容从前到后拷贝到目标空间,这样才不会覆盖有用值。3,如果source和destination有任何的重叠,复制的结果都是未定义。下面模拟实现memcpy,观察函数内部是如何实现的。
2024-05-23 17:15:15
409
2
原创 数据在内存中的存储——了解存储规则
计算机事宜字节为单位处理数据,由于一个字节是8个bit,而数据类型在一般情况下(看编译器)占用字节最小char需要一个字节8个bit,int short long 分别占32,16,32个bit,而对于大于8位的处理器,由于寄存器宽度大于一个字节,那就必然存在将多个字节如何安排的问题,就出现了大小端存储,注意,大小端是以字节来说的,所以char型是没有大小端一说的,因为他只有一个字节。由此说明,浮点数在内存中和整形时不同的,并且,不论哪种类型的数据,以该类型存入内存,就得以该类型取出。
2024-05-22 22:48:14
1039
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人