关键字/操作符/函数
文章平均质量分 65
对常用的一些关键字 操作符 库函数进行记录和学习
又秃又弱
(停更备考中,无法回复问题,请各位斟酌帖子,请勿一味的输入知识
展开
-
C++关键字 | explicit
只能用于修饰只有一个参数的类构造函数,作用四表明该构造函数的是。比如:给对象a进行赋值:a(1),对;对应的另一个关键字是implicit(隐藏)。不能用赋值'=',要用括号()添加该关键字后必须显示,不能隐式。原创 2023-04-22 17:46:44 · 104 阅读 · 0 评论 -
C++中const的用法
凡是没有This指针的东西,都不具备const修饰的能力。const不能修饰静态函数,因为静态内没有this指针。const不能修饰全局函数,因为全局内没有this指针。常方法——const修饰this指针的指向。const可以修饰哪些类型函数?原创 2023-04-22 20:07:04 · 112 阅读 · 0 评论 -
八股| malloc和new的区别
1.(主动开辟,申请空间,只能申请,不能创造空间)malloc、new在堆上申请。2.(被动开辟)函数被调用时 赋给局部变量、局部对象空间。函数,使用需要引入头文件返回值为指针,类型和对象类型一致,不需要强转。malloc分配,free回收内存。返回值为void* ,需要强转。malloc和new都是在。上进行内存空间开辟的。delete调用析构。原创 2023-04-22 18:22:38 · 133 阅读 · 0 评论 -
前++与后++的区别?反汇编底层刨析
单独++不和其他运算符结合时,前置和后置一样当和其他运算符结合时前置++是先++后赋值,a=1;i=++a;//a=2,i=2;后置++是先赋值再++ ,a=1;i=a++;//a=2,i=1;前置++可以做左值,后置不可以前置可以取地址&,后置不可以。原创 2023-04-22 13:01:01 · 3483 阅读 · 1 评论 -
动态存储分配 | malloc realloc calloc的使用
前言动态存储分配适用于所有类型的数据,但主要用于字符串、数组和结构。数组局部变量栈在windows中的默认大小为1M,Linux中默认大小为10M,因此在堆heap中进行内存申请——动态内存的开辟。原创 2022-02-24 17:47:23 · 1970 阅读 · 0 评论 -
strlen()和sizeof()区别
sizeof(brr[0][0]) ->单元格类型所占字节数与一维数组arr[0]含义一致,单个元素的大小。有个误区是,会以为以‘\n’结尾就就不再往后读取了,但是\n并不会作为字符串的结束符,strlen()为下图所示,sizeof()还需要加上结束符'\0',即为9。sizeof(brr) ->数组总字节数,即行和列元素总个数*定义类型的大小。sizeof(arr[0]) ->第一个元素字节数,或者说是单个元素的大小。sizeof(brr[0]) ->第一行元素的总字节数。二维数组brr[][]原创 2023-04-10 10:41:05 · 1655 阅读 · 1 评论 -
C中宏定义define&typedef
define:使用方法:在预编译阶段进行字符串(宏)替换#defineINITSIZE10//含义:INITSIZE=10,在编译阶段使用INITSIZE就是使用10注意:无‘ ; ’说明:如果多个定义#defineINT int*INT a b;//a:int* b:int如果定义相同类型的多个变量,用typedef typedefint* INT;(如下讲解)typedef:使用方法:在预编译阶段进行类型重定义typedefunsigne......原创 2022-02-13 20:20:14 · 383 阅读 · 0 评论 -
数据类型的分类有哪些?字节大小为?有符号和无符号整型是什么?怎么计算?
最大32位整数是0111 1111 1111 1111 1111 1111 1111 1111=2147483647=默认的整数是有符号的,也就是左边位保留符号位。最大16位整数的二进制表示形式为0111 1111 1111 1111=32767=无符号:最左边一位是数值的一部分,而不是符号位。如果>127的数字截取其二进制的后8位,并带入其符号位。加上符号位(默认第一位为符号位):1->负数‘-’有符号:第1位一定是用来存储符号,标记正负号。最终结果:-1000 0000->‘-128’原创 2022-02-13 19:26:03 · 1461 阅读 · 0 评论 -
static在C++中的使用 | 静态数据成员与静态成员函数
在对变量声明时,全局变量可以实现对象的共享,但是可以被任意修改,没有权限的修改会出现无章法的问题。而普通成员变量是本类某个对象独有的,在类作用域内发挥作用,不会被任意修改,相比于全局变量更加安全,可以在外部不能被使用,因此产生了。第一次遇到b进行初始化,每次在调用fn时都要对a进行初始化,而b在静态存储区开辟的空间没有消息,在循环内累加,直到程序运行完空间才释放。,非静态函数内pintf()有this指针,必须通过对象来调用,把地址传过来才知道是谁的,不然就乱了。虽然b的空间没有消失,但是b是。原创 2022-11-03 11:45:22 · 1823 阅读 · 0 评论 -
【c++】内联函数inline
这是一个问题,对于C++而言,使用宏定义还有一个缺点就是:无法操作类的私有数据成员。因此引入“内联函数”,在C++程序中,应该用内联函数取代所有宏代码,而且内联函数可以对类型安全检查或者自动类型转换。原创 2022-09-25 12:28:10 · 594 阅读 · 0 评论 -
结构体struct与内存对齐
结构体数组:访问:成员访问:变量名称.结构体变量 ‘.’成员访问符例如:Student"李四",14};Studentstudent1;//如果是局部变量(写在函数内部)->未初始化,成员内容为随机值,编译会报错;如果是全局变量(写在函数外部)->未初始化,编译器给成员列表默认值初始化int,short那些都是0,char类型为\0,编译不会报错例题求解:structStudenta;//利用struct Student数据类型定义一个变量a;struct。原创 2021-12-06 12:24:11 · 471 阅读 · 0 评论 -
【const】与指针、数组、结构体的使用
但如果用const修饰性别时(const char sex),可以将s1.sex=‘女’修改指向。//此时,const修饰p变量,p只能指向a,也可修改a(当前仅当a是变量),但是p不可以任意指向。第二行定义指针p指向a可修改a,但第一行定义a为常量不允许被修改,自相矛盾,所以编译器提醒错误。//const char *src,表示函数strcpy不会修改 src指向的内容。//允许p指向a,但是不可修改a,p可以任意指向。name,指明姓名不能被修改,这样的用法是正确。//a为常变量,不可修改。原创 2021-12-06 12:28:31 · 1740 阅读 · 0 评论 -
联合体/共用体Union
定义:与结构体struct类似,但本质也有不同,在结构体中,各成员有各自的内存空间(就比如虽然要求内存对齐,但像int char..都还有各自的内存),而在联合体中,各成员共享同一段内存。一个联合变量的长度等于各成员中最长的长度(如下举例,内存长度为2,因为short》char。就是内存里面要么是s要么是c,不可能同时占用内存)eg:union myunion{short s;char c;};uni......原创 2022-02-23 20:18:35 · 275 阅读 · 0 评论 -
枚举enum
定义:enum color{Red,Blue,Black,White}; //定义枚举颜色enum color c=Red; //定义变量c并赋值如未赋值,枚举集合中的变量值默认为0123..eg:enum color{Red=10,Blue=20,Black=30,White}; 则,white=21说明:枚举取值只能是枚举集合中的元素枚举变量不能++ --(就跟常量一样)相比于宏常量#define Red 0,枚举更简单。区别:枚举有类型......原创 2022-02-23 20:24:02 · 391 阅读 · 0 评论 -
关键字extern | 变量声明和定义的区别?extern怎么使用?
用法:变量\函数定义在其他源文件中,在当前文件使用该变量\函数时前面需加上extern因为局部变量不能作为全局变量任意使用,他只在当前作用域范围内有效,extern可以使得局部变量任意使用。......原创 2022-03-18 11:42:40 · 642 阅读 · 0 评论