C++的几个特殊符号
- #
把宏参数变为一个字符串,仅可用于宏定义中。
如:
int GetLength(std::string str)
{
return str.length();
}
#define LEN(str) GetLength(#str)
int main()
{
std::string str = "abcdefg";
cout << LEN(str) << endl;
return 0;
}
// 上述程序将输出3,而不是7
- ##
把两个宏参数连接到一起,仅可用于宏定义中。
如:
int GetLength(std::string str)
{
return str.length();
}
#define TOTALLEN(str1, str2) GetLength(str1##str2)
int main()
{
std::string str1 = "abcdefg";
std::string str2 = "hijk";
std::string str1str2 = "hello";
cout << TOTALLEN(str1,str2) << endl;
return 0;
}
// 上述程序输出5,即str1str2的长度
- \
在宏定义中用于将不同行的上下文连接成一行
- __DATE__
在源文件中插入当前编译的日期
- __TIME__
在源文件中插入当前编译的时间
- __FILE__
在源文件中插入当前源文件路径及文件名
- __LINE__
在源文件中插入当前源代码的行号
C++的“>>“和“<<“
操作符作用
C++中标准输入输出中所使用的">>“和”<<"是重载运算符作用,意义是流插入运算付和流提取运算符
位操作符
在了解移位操作符和位操作符之前,我们需要知道一个十进制的整数是如何在计算机中存储的,以int a = 10 为例,int型占4个字节,一个字节有8位,正数十以二进制存储在这32位中,其在内存中的存储如下,为方便视图中间部分已省略。注意:注意:注意:
" 移位操作都是针对补码进行的,正数的原码、补码、反码相同,负数的原码取反得反码,反码加一得补码。"
- ">>"右移操作符
- "<<"左移操作符
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。