![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
金创想
这个作者很懒,什么都没留下…
展开
-
%n的作用
它在printf中不常用,但在scanf中有时很有用。当%n出现在scanf的格式字符串中时,它告诉scanf在成功读取并赋值给前面的变量后,将到目前为止读取的字符数(不包括任何由于空白字符、不可转换的字符或匹配失败而跳过的字符)存储在相应的指针所指向的int变量中。如果用户输入123abc,则num将被赋值为123,而char_count将被赋值为3(因为数字123包含3个字符)。%n用于在scanf中用于存储已读取的字符数。原创 2024-06-07 16:17:07 · 160 阅读 · 0 评论 -
标识符的分类
(5)预定义宏(也称内置宏):预定义宏是编译器预先定义好的宏,具备特定的功能,不需要用户使用#define定义就可以直接使用。(4)系统常量名:预先定义在头文件中的宏常量,通常为数学常量、物理常量或其他与特定库或框架相关的常量,如NULL(空指针)、M_PI(π)。预定义标识符和关键字的区别在于,用户可以重新定义预定义标识符另作他用,但这将失去预先定义的原意,所以不应随便更改这类标识符。标识符(identifier)是标识某个实体的符号,是程序员给变量、常量、函数、语句块等起的名字。原创 2024-05-24 17:35:41 · 1349 阅读 · 0 评论 -
C语言布尔类型的前世今生
正常布尔类型只占1个字节(这其实也是bool类型的一个存在价值,占用内存比int型小),但因为bool被替换为int,所以sizeof(bool)输出的是4个字节。因为#define bool int的存在,在编译时会自动将所有的bool替换为int,相当于这个新设的bool类型完全没起作用。只是这个布尔类型不是像bool、BOOL这样的美男子,而是这样一个怪胎:_Bool。从此以后,我们不用自己造炮了,只要加上头文件,就可以像其他语言一样使用bool、true、false。原创 2024-05-21 16:44:36 · 560 阅读 · 0 评论 -
常见的C编译器
这些编译器都有自己的特点和优点,适用于不同的应用场景。例如,Microsoft Visual C++适用于Windows系统,其语法高亮和括号补全功能强大,但体积较大;而GCC和Clang则适用于多种操作系统,包括Linux、macOS和Windows等,其生成的代码执行效率较高,但配置相对复杂。选择合适的编译器对于开发效率和代码质量至关重要。常见的C编译器有Microsoft Visual C++、GCC、Clang和Intel C++ Compiler等。原创 2024-05-17 18:00:56 · 64 阅读 · 0 评论 -
一文搞定“宏”
它用于宏定义中的替换列表中,会把其后的宏参数转换为一个用双引号(quotes)括起来的字符串。宏替换就是简单的文本替换,它是在编译阶段完成的(相当于Word里的查找替换),因此它在执行时不需要函数调用的开销:传递参数和返回值等,所以宏比函数在程序的内存开销和速度方面更胜一筹。需要注意的是,如果类函数宏的参数含有逗号,逗号只会被识别为参数的分隔符(separator),而不会被识别为逗号操作符。①条件判断(x++)>( y++),结果:x++表达式的值为3,y++表达式的值为7,x=4,y=8。原创 2024-05-17 17:47:39 · 1475 阅读 · 0 评论 -
如何打印指针?
注意:在将指针传递给%p时,通常需要将指针转换为(void *)类型,尽管在C99及更高版本中,这不是必需的,但在旧版本的C和C++中,这是必要的。当你需要打印指针的值时,应该始终使用%p,而不是使用%x或%u等,因为%p知道如何正确处理指针的大小和可能的对齐要求。%p用于打印指针的值。以十六进制的形式输出,并在前面加上0x或类似的前缀。原创 2024-05-16 17:37:25 · 176 阅读 · 0 评论