一、C++ 注释
-
// - 一般用于单行注释。
-
/* ... */ - 一般用于多行注释。
注释既可以单起一行也可以跟在语句后面。
-
#include <iostream> using namespace std; int main() { // 这是一个注释 cout << "Hello World!"; return 0; }
#include <iostream> using namespace std; int main() { cout << "Hello World!"; // 输出 Hello World! return 0; }
对多行注释
以 /* 开始,以 */ 终止。既可以单行结束,也可以跨行结束。
#include <iostream>
using namespace std;
int main() {
/* 这是注释 */
/* C++ 注释也可以
* 跨行
*/
cout << "Hello World!";
return 0;
}
补充:
1.块函数多行注释不能嵌套使用。
2.
#if 0 ... #endif 属于条件编译,0 即为参数。
此外,我们还可以使用 #if 0 ... #endif 来实现注释,且可以实现嵌套,格式为:
#if 0
code
#endif
实际上以上代码还可以更具普适性。
#if condition
code1
#else
code2
#endif
此时若condition == True,则内部函数运算,否则不,这可以作为一种合适的调试。
二、C++ 数据类型
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
而实际上 wchar_t 是前面两种数据的组合。
typedef short int wchar_t;
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed
- unsigned
- short
- long
通常情况下,数据类型对应的位大小一定,但随着操作系统不同,这点存在差异。
类型 | 位 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 到 18,446,744,073,709,551,615 |
float | 4 个字节 | 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字) |
long double | 16 个字节 | 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。 |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
以我的系统为例。
type: ************size**************
bool: 所占字节数:1 最大值:1 最小值:0
char: 所占字节数:1 最大值: 最小值:€
signed char: 所占字节数:1 最大值: 最小值:€
unsigned char: 所占字节数:1 最大值: 最小值:
wchar_t: 所占字节数:2 最大值:65535 最小值:0
short: 所占字节数:2 最大值:32767 最小值:-32768
int: 所占字节数:4 最大值:2147483647 最小值:-2147483648
unsigned: 所占字节数:4 最大值:4294967295 最小值:0
long: 所占字节数:4 最大值:2147483647 最小值:-2147483648
unsigned long: 所占字节数:4 最大值:4294967295 最小值:0
double: 所占字节数:8 最大值:1.79769e+308 最小值:2.22507e-308
long double: 所占字节数:8 最大值:1.79769e+308 最小值:2.22507e-308
float: 所占字节数:4 最大值:3.40282e+38 最小值:1.17549e-38
size_t: 所占字节数:8 最大值:18446744073709551615 最小值:0
string: 所占字节数:40
type: ************size**************
重点讲讲unsigned 和 signed 和 long
unsigned 英文义 无符号的。 从以上数据最大值也可以看出了,unsigned 修饰的数据不存在负值,也就不存在用负号修饰。
而 signed 所修饰的数据关于0点对称。
long long结构不知道为什么上面没有,但long long结构是算法题标配。