
C/C++专题
文章平均质量分 84
@一水间
一起学习呀!
展开
-
C语言——C预处理器(预处理指令、类函数宏、条件编译、预定义宏)
使用 #define 指令定义符号常量。 预处理器发现程序中的宏时,用宏的替换体进行替换。(注意:这里printf 的双引号里的 x 是文本,而非可被替换的记号,替换的是逗号后面的 x 。) 在C语言中,允许在字符串中包含宏参数。例如,x 是宏参数(形参),则#x 是转换为字符串 "x" 的参数名(形参数名)。 【 PSQR(5)宏展开为:printf( " The square of " "5" " is %d.\n", ( (5)*(5) ) );然后字符串具有联合功能:prin原创 2022-12-14 11:22:03 · 549 阅读 · 0 评论 -
C语言——按位运算符(按位逻辑运算符、移位运算符)
对于有符号数,其结果取决于机器,空出的位可用 0 补齐,或是用原先运算对象的符号位补齐。按位比较两个运算对象中的每一位,只要其中一个是 1,另一个为 0,则为 1,否则为 0(都为 0,或 1 时为 0)。按位比较两个运算对象中的每一位,只要其中一个是 1,结果就是 1,否则为 0(同 0 为 0,否则为 1 )。按位比较两个运算对象中的每一位,同 1 取 1,否则取 0。// 此时,才修改了 val 的值为 ~val 的值,即 253。按位运算符的应用有:掩码、打开位、变比位、切换位、检查位。原创 2022-12-12 16:04:19 · 2252 阅读 · 1 评论 -
C语言——标准函数库
s1 和 s2 的参数类型是 void * ,而void * 类型的指针可以接收任意类型的指针,所以函数memcpy 和memmove 可以实现任意类型的数组的拷贝。(函数 strcpy() 和 strncpy() 只能用于处理字符数组。)函数memcpy() 不知道也不关心数据的类型,更不会做类型转换,它只会做字节拷贝工作。而通过循环(利用循环按下标依次赋值)把一个数组中的值赋给另外一个数组时,在赋值的过程中是会做数据类型转换的。原创 2022-11-23 15:10:58 · 2245 阅读 · 0 评论 -
指针边角料——void*指针, const指针, 函数指针等
数组变量本身就是const指针,而这里的const的作用是表示数组中的每一个元素都是不可变的,所以数组中的元素只能通过初始化来赋值。NULL 指针并不指向任何对象。记住,除非用于赋值或者比较运算,出于其他任何目的使用NULL指针都是非法的。原创 2022-11-23 10:27:27 · 509 阅读 · 0 评论 -
【C++】变量和变量类型(引用、指针、typedef、auto、decltype)
声明确定了变量的名字和类型,而定义则创建了与变量名相关的实体(申请了内存空间)。变量只能被定义一次,但是可以被多次声明。一个文件中需要使用另一个文件中定义的代码,则必须在该文件中对变量进行声明。如果想要声明一个变量而非定义它,就在变量 前面使用extern关键字,而且不要显示初始化。例如://声明而非定义int j;//声明并定义//非声明而是定义(在给变量赋初值后,关键字extern就失效了,相当于定义。)原创 2022-11-24 09:53:16 · 348 阅读 · 0 评论 -
C++数组使用方法
C++数组的使用方法,比较全了,语言简短,要是有看不懂的欢迎留言原创 2022-03-29 19:56:56 · 7816 阅读 · 0 评论 -
内存管理及错误分析
指针操作内存,防范野指针、内存申请与释放。原创 2022-09-21 10:34:55 · 550 阅读 · 0 评论