随笔分类 -  C语言

摘要:目录类型关键字sizeof如何理解强制类型转化不同类型的0null字符设备(补充) char有有符号和无符号两种类型,字符是无符号类型.(补充) getchar的返回值为什么是int键盘输入的内容,以及往显示器中打印的内容,都是字符 --> 键盘/显示器称为字符设备 类型 C语言为何有类型? 让我们 阅读全文
posted @ 2024-09-19 23:00 HJfjfK 阅读(32) 评论(0) 推荐(0) 编辑
摘要:目录位运算位运算和逻辑运算区别位运算的几点注意异或的运算规则异或的经典问题:两数交换位操作建议使用宏定义好后使用位运算整型提升问题左移和右移概念移位运算容易误解成移位赋值 位运算 位运算和逻辑运算区别 位运算是一位对应一位的对所有位逐一进行运算(逐比特位进行运算).逻辑运算是以计算表达式的真假为主进 阅读全文
posted @ 2024-09-19 12:00 HJfjfK 阅读(128) 评论(0) 推荐(1) 编辑
摘要:目录举例一些的宏和预处理指令C99引入的特性 VA_ARGS__##__VA_ARGS__说明:#line#error#pragmaMessage参数#warning#和##前置:相邻字符串具有自动连接特性#运算符#运算符的功能:在宏定义中,将宏参数转化成字符串用法举例:使用场景:##运算符功能:用 阅读全文
posted @ 2024-09-19 08:00 HJfjfK 阅读(60) 评论(0) 推荐(1) 编辑
摘要:目录typedeftypedef功能简化类型声明typedef与宏的区别typedef的用法注意不要过度使用typedef为什么typedef属于存储类型关键字 typedef 历史的误会-typedef也许应该是typerename,typedef就是用来给类型重命名的 typedef功能 typ 阅读全文
posted @ 2024-09-18 23:00 HJfjfK 阅读(158) 评论(0) 推荐(1) 编辑
摘要:目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠'\'反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof('1')的大小是4 ?char类型一直在发生截 阅读全文
posted @ 2024-09-18 21:00 HJfjfK 阅读(260) 评论(0) 推荐(1) 编辑
摘要:目录++(--)后置的++(--)真的是先使用,后自增吗?后置++和前置++的差别复杂表达式++i+++i+++i贪心法编译器的贪心规则不是保证一定正确的规则赋值的原理 ++(--) 后置的++(--)真的是先使用,后自增吗? 概念:前置++是先自增,后使用; 后置++是先使用,后自增. 下面从汇编 阅读全文
posted @ 2024-09-18 19:00 HJfjfK 阅读(37) 评论(0) 推荐(0) 编辑
摘要:目录浮点数与"零值"精度损失:验证浮点数的差值是否存在精度损失浮点数直接比较验证如何进行浮点数比较浮点数与"零值"比较null 浮点数与"零值" 精度损失: 浮点值与实际值不等,可能偏大可能偏小,都属于精度损失 验证浮点数是否存在精度损失 验证浮点数的差值是否存在精度损失 浮点数直接比较验证 结论: 阅读全文
posted @ 2024-09-17 20:00 HJfjfK 阅读(177) 评论(0) 推荐(0) 编辑
摘要:目录宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个可靠的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用之前进行.块中进行# 阅读全文
posted @ 2024-09-17 12:57 HJfjfK 阅读(90) 评论(0) 推荐(0) 编辑
摘要:目录C语言的四种取整方式:零向取整trunc函数(C99)trunc的使用地板取整floor函数的使用向上取整ceil函数的使用四舍五入round函数(C99)round函数的使用四种取整方式演示 C语言的四种取整方式: 零向取整 如图: 可以发现C语言a和b的取整方式都不是四舍五入,而是直接舍弃小 阅读全文
posted @ 2024-09-16 20:00 HJfjfK 阅读(170) 评论(0) 推荐(0) 编辑
摘要:目录变量程序的本质:二进制文件1.变量:内存上的某个位置开辟的空间2.变量的初始化:3.为什么要有变量4.局部变量与全局变量5.变量的大小由类型决定6.任何一个变量,内存赋值都是从低地址开始往高地址1.1 关键字auto1.2 关键字register什么样的变量可以采用register? 变量 程序 阅读全文
posted @ 2024-09-16 14:00 HJfjfK 阅读(55) 评论(0) 推荐(0) 编辑
摘要:目录关键字unsigned和signed数据在计算机中的存储原码 与 补码的转化与硬件关系原,反,补的原理:整型存储的本质变量存取的过程类型目前的作用十进制与二进制快速转换大小端字节序判断当前机器的字节序"负零"(-128)的理解截断建议在无符号类型的数值后带上u, 关键字unsigned和sign 阅读全文
posted @ 2024-09-15 20:00 HJfjfK 阅读(184) 评论(0) 推荐(1) 编辑
摘要:目录条件编译 - 代码裁剪的工具为何要有条件编译条件编译都在那些地方用?见一见条件编译的代码宏是否被定义 vs 宏是否为真or假编译器也能够自动帮你加上宏GCCVS2023-VS2019#ifdef/#ifndef#if注意事项让#if和#ifdef/#ifndef完全一样条件编译也支持嵌套一个使用 阅读全文
posted @ 2024-09-15 16:00 HJfjfK 阅读(64) 评论(0) 推荐(0) 编辑
摘要:目录if-else组合if的执行顺序操作符的执行顺序测试方法C语言的布尔类型switch case组合(补充) 屏蔽警告的方法在case中执行多条语句,建议case后都带上花括号.多个case执行同样语句do、while、for循环的基本结构continue跳转的位置循环设计的思想推荐推荐使用for 阅读全文
posted @ 2024-09-15 10:00 HJfjfK 阅读(82) 评论(0) 推荐(0) 编辑
摘要:目录负数"取模"基本概念修正定义取整规则决定商的值取模和取余不一样. 负数"取模" 基本概念 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = q*d + r,且0 <= r < d。其中,q 被称为商,r 被称为余数。 //对应代码 int main() { i 阅读全文
posted @ 2024-09-14 20:00 HJfjfK 阅读(382) 评论(0) 推荐(1) 编辑
摘要:内存拷贝 - memcpy 描述 C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。 memcpy 是最快的内存到内存复制子程序。 它通常比必须扫描其所复制数据的strcpy 阅读全文
posted @ 2024-08-05 22:05 HJfjfK 阅读(126) 评论(0) 推荐(0) 编辑
摘要:# 字符串长度 - strlen() 描述 C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 声明 下面是 strlen() 函数的声明。 size_t strlen(const char *str) 参数 s 阅读全文
posted @ 2024-08-05 20:23 HJfjfK 阅读(65) 评论(0) 推荐(0) 编辑
摘要:strcat 描述 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) 阅读全文
posted @ 2024-08-05 15:04 HJfjfK 阅读(48) 评论(0) 推荐(0) 编辑
摘要:memset() 描述 C 库函数 void *memset(void *str, int c, size_t n) 用于将一段内存区域设置为指定的值。 memset() 函数将指定的值 c 复制到 str 所指向的内存区域的前 n 个字节中,这可以用于将内存块清零或设置为特定值。 在一些情况下,需 阅读全文
posted @ 2024-08-05 14:03 HJfjfK 阅读(60) 评论(0) 推荐(0) 编辑
摘要:C 库函数 - strcmp() 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。 声明 下面是 strcmp() 函数的声明。 int strcmp(const cha 阅读全文
posted @ 2024-08-05 13:02 HJfjfK 阅读(58) 评论(0) 推荐(0) 编辑
摘要:内存移动 - memmove 也是拷贝函数,源字符串可能会被覆盖,但保证目标是想要的 描述 C 库函数 void *memmove(void *str1, const void *str2, size_t n) 从 str2 复制 n 个字符到 str1,但是在重叠内存块这方面,memmove() 阅读全文
posted @ 2024-08-05 10:00 HJfjfK 阅读(59) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示