
C++
qq_34405786
这个作者很懒,什么都没留下…
展开
-
C大小端存储
大小端模式介绍大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。 小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)用联合体实现大小端判断联合体是一个在同一个存储空间里存储不同类型数据的数据类型。这些存储区的地址都是一样的,联合里不同存储区的内存是重叠的,修改了任何一个其他的会受影响。#include <stdio.h>int main(){原创 2020-08-24 14:55:35 · 271 阅读 · 0 评论 -
C++类大小的计算
平时所声明的类只是一种类型定义,它本身是没有大小可言的,如果用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。首先,类大小的计算遵循结构体的对齐原则 类的大小与普通数据成员有关,与成员函数和静态成员无关。即普通成员函数,静态成员函数,静态数据成员,静态常量数据成员均对类的大小无影响 虚函数对类的大小有影响,是因为虚函数表指针带来的影响 虚继承对类的大小有影响,是因为虚基表指针带来的影响 空类的大小是一个特殊情况,空类的大小为1静态数据成员之所以不计算在类的对象大小内,是因为类转载 2020-08-18 19:47:05 · 177 阅读 · 0 评论 -
结构体对齐规则
结构体默认的字节对齐一般满足三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员自身大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);(每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的)3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。struct X{原创 2020-08-18 17:49:32 · 377 阅读 · 0 评论 -
结构体与类的区别
结构体是为能够保存不同类型的数据而存在的,因为数组只能够保存一种数据类型,而在平时的编程中我们需要用到不同数据类型的一个整体结构,这时就要用到一个新的数据类型——结构体,来保存这些不同的数据类型的数据的集合。C语言的结构体中只允许定义数据成员,不允许定义函数成员,C语言没有访问控制概念,全部成员是公有的;C++为C语言的结构体引入了成员函数、访问权限控制、继承、包含多态等面向对象的特性。C++中结构体是一种特殊类型的类,和类一样有数据成员、函数成员,可以有自己的构造函数和析构函数,可以控制访问权限,原创 2020-07-07 10:38:01 · 406 阅读 · 0 评论 -
sizeof和strlen的区别
sizeof:用来计算变量或者对象、类型所占字节的多少strlen:用来计算字符串的长度,遇到第一个NULL('\0')为止,不包括‘\0’sizeof是一个关键字不是函数,发生在编译时刻,所以可以用作常量表达式总结如下,当参数分别如下时,sizeof返回的值表示的含义如下: 数组——编译时分配的数组空间大小; 指针——存储该指针所用的空间大小(在32位系统是4,在64系统是8); 类型——该类型所占的空间大小; 对象——对象的实际...原创 2020-07-07 09:54:54 · 105 阅读 · 0 评论 -
C++智能指针
参考:https://www.cnblogs.com/wxquare/p/4759020.html我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。使用普通指针,容易造成堆内存泄露(忘记释放),程序异常的进入catch块忘记释放内存、二次释放等问题,使用智能指针能更好的管理堆内存。智能指针实际上为一个类对象,行为上像一个指针。在被调函数执行完,程序过期时原创 2020-07-01 10:20:12 · 113 阅读 · 0 评论 -
C++引用的用法
在C语言中这个符号表示了取地址符,取地址符常常用来用在函数传参中的指针赋值。但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。一、引用简介引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识原创 2020-06-29 21:58:09 · 4375 阅读 · 1 评论 -
const的用法
const主要是用来防止定义的对象再次被修改,定义对象变量时要初始化变量const可用于修饰变量、指针、函数参数和返回值、类数据成员、类成员函数、对象(1)修饰变量用于定于常量变量,这个变量在后面就不可被修改const int Val = 10; //Val = 20; //错误,不可被修改(2)修饰指针主要看const在*的前后,在前则指针指向的内容为常量,在后则指针本身为常量;①指向const变量的指针:②const指针const int *ptr; //原创 2020-06-29 18:48:56 · 133 阅读 · 0 评论 -
C(string.h)字符串操作函数总结
收藏转自:https://blog.youkuaiyun.com/qq_33757398/article/details/81212618转载 2020-06-21 10:52:21 · 113 阅读 · 0 评论 -
C++结构体指针 使用注意
声明一个结构体指针记得初始化,一定要初始化,不初始化会出事参考:https://blog.youkuaiyun.com/lwgkzl/article/details/81866016?指针的危险:long* fellow;*fellow = 23333;上述代码中没有讲地址赋给fellow。C++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来存储指针多指向的数据的内存。...原创 2020-04-14 12:59:49 · 298 阅读 · 0 评论 -
C++ 数组初始化为0
1、作为全局变量时:初值默认为0int a[100];//初始化默认为02、作为局部变量时:初值为一随机值int a[100] = {0};//a[0] = 0,其余元素默认用0填充3、遍历赋值和循环赋值实际一样void *memset( void *dest, int c, size_t count );The memset function sets the f...原创 2020-03-29 23:48:13 · 7639 阅读 · 0 评论