1. 常量
使用define或者const来定义常量。
示例1:#define 宏常量
1 2 3 4 5 6 7 8
| #include <iostream> using namespace std; #define DAY 7 int main(){ cout << "一周共有:" << DAY << "天" << endl; return 0; }
|
示例2:const修饰
1 2 3 4 5 6 7 8
| #include <iostream> using namespace std; int main() { const int month = 12; cout << "一年有" << month << "月" << endl; return 0; }
|
2. 数据类型
2.1 整型
- short 2字节
- int 4字节
- long windows为4字节,Linux:4字节(32位),8字节(64位)
- long long 8字节
2.2 实型(浮点型)
- float 4字节 7位有效数字
float f2 = 3.14f;//不加f 默认3.14是double型,然后将其转化为float。
- double 8字节 15~16位有效数字
- 此处有效数字范围不区分小数点前后,默认情况下输出一个小数时显示6位数字。
2.3 科学计数法
- float f4 = 3e2;//3*10^2;
float f5 = 3e-2;//3 * 0.1^2
2.4 字符型
- 存放一个字符时将该字符对应的ASCII码放入内存单元,如’a’ = 97,’A’ = 65。
2.5 转义字符
- 换行符 \n
- 反斜杠 \
- 水平制表符 \t 占八个位置,用于整齐的输出数据。
1 2 3
| cout << "aaa\thello world!" << endl; cout << "aa\thello world!" << endl; cout << "aaaaa\thello world!" << endl;
|
2.6 字符串
字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。
- c语言风格 char 变量名[] = “字符串”。
示例:
1 2 3
| char str1[6] = {'H','e','l','l','o'}; char str2[] = {'H','e','l','l','o'};
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #include <iostream> using namespace std; #include <cstring> #define DAY 7
int main() { cout << "hello world!" << endl; char str1[11] = "hello"; char str2[11] = "world"; char str3[11]; int len; int equal; cout << "str1: " << str1 << endl; cout << "str2: " << str2 << endl;
cout << "strlen(str1):" << strlen(str1) << endl; cout << "strlen(str2):" << strlen(str2) << endl;
strcpy_s(str3, str1); cout << "strcpy_s(str3, str1): " << str3 << endl;
strcat_s(str1, str2); cout << "strcat_s(str1, str2): " << str1 << endl;
len = strlen(str1); cout << "strlen(str1+str2)" << strlen(str1) << endl;
equal = strcmp(str1, str2); cout << "strcmp(str1, str2): " << equal << endl; cout << "strcmp(str1, str1): " << strcmp(str1, str1) << endl; cout << "strchr(str1,e): " << strchr(str1, 'e') << endl;
cout << "strstr(str1,str1)" << strstr(str1, str1) << endl; system("pause"); return 0; }
|
运行结果为:
1 2 3 4 5 6 7 8 9 10 11 12
| hello world! str1: hello str2: world strlen(str1):5 strlen(str2):5 strcpy_s(str3, str1): hello strcat_s(str1, str2): helloworld strlen(str1+str2)10 strcmp(str1, str2): -1 strcmp(str1, str1): 0 strchr(str1,e): elloworld strstr(str1,str1)helloworld
|
- c++语言风格 string 变量名 = “字符串”。
2.7 布尔类型
3. 运算符
- c++中两个整数相除结果依然是整数,小数部分去除。
- 两个小数不可以做取模运算
- 自增++,自减–
示例:
1 2 3 4
| int d4 = 10; cout << d4++ << endl; cout << d4 << endl; cout << ++d4 << endl;
|
示例:
1 2 3 4 5 6 7 8 9 10 11
| int a = 10; int b = 2; int c = 0; c = (a > b ? a : b); cout << "c = " << c << endl; cout << (a > b ? a : b) << endl;
(a > b ? a : b) = 100; cout << "a = " << a << endl; cout << "b = " << b << endl;
|
4. 程序结构
4.1 break
跳出选择结构或循环结构。
- 出现在switch语句中,终止case并跳出switch。
- 出现在循环语句中,跳出最近的循环语句。
4.2 continue
在循环语句中,跳过本次循环中余下尚未执行的语句,继续进行下一次循环。
示例:
1 2 3 4 5 6 7
| for (int i = 0;i < 100;i++) {
if (i % 2 == 0) { continue; } cout << i << endl; }
|
4.3 goto
goto 标记
- 如果标记存在,执行带goto语句时,会跳转到标记的位置。
示例:
1 2 3 4 5 6
| cout << "1" << endl; goto FLAG; cout << "3" << endl; FLAG: cout << "2" << endl;
|
5. 数组
5.1 一维数组
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <iostream> using namespace std; int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; cout << "整个数组所占内存空间为:" << sizeof(arr) << endl; cout << "每个数组元素所占内存空间为:" << sizeof(arr[0]) << endl; cout << "数组元素个数为:" << sizeof(arr)/sizeof(arr[0]) << endl;
cout << "数组首地址为:" << hex << (int)arr << endl; cout << "数组中第一个元素的地址为:" << &arr[0] << endl; cout << "数组中第一个元素的地址为:" << &arr[1] << endl; return 0; }
|
运行结果为:
1 2 3 4 5 6
| 整个数组所占内存空间为:40 每个数组元素所占内存空间为:4 数组元素个数为:10 数组首地址为:4ff758 数组中第一个元素的地址为:004FF758 数组中第一个元素的地址为:004FF75C
|
5.2 二维数组
1 2 3 4 5 6
| 二维数组定义方式: 1、数据类型 数组名 [行数][列数]; 2、数据类型 数组名 [行数][列数] = {{数据1,数据2、},{数据3,数据4}}; 3、数据类型 数组名 [行数][列数] = {数据1,数据2,数据3}; 4、数据类型 数组名 [][列数] = {数据1,数据2,数据3}; 以上四种定义方式,第二种更加直观,提高代码的可读性
|
- 二维数组名
1、查看二维数组所占内存空间
2、获取二维数组首地址
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <iostream> using namespace std; int main() { int arr[2][3] = { {1,2,3}, {4,5,6} }; cout << "二维数组所占内存空间为" << sizeof(arr) << "个字节" << endl; cout << "二维数组第一行所占内存空间为" << sizeof(arr[0]) << "个字节" << endl; cout << "二维数组第一个元素占用内存为" << sizeof(arr[0][0]) << "个字节" << endl;
cout << "二维数组行数:" << sizeof(arr) / sizeof(arr[0]) << endl; cout << "二维数组列数:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
cout << "二维数组首地址:" << (int)arr << endl; cout << "二维数组第一行首地址:" << (int)arr[0] << endl; cout << "二维数组第一个元素的首地址:" << (int)&arr[0][0] << endl; cout << "二维数组第二行首地址:" << (int)arr[1] << endl;
return 0; }
|
运行结果为:
1 2 3 4 5 6 7 8 9
| 二维数组所占内存空间为24个字节 二维数组第一行所占内存空间为12个字节 二维数组第一个元素占用内存为4个字节 二维数组行数:2 二维数组列数:3 二维数组首地址:4126964 二维数组第一行首地址:4126964 二维数组第一个元素的首地址:4126964 二维数组第二行首地址:4126976
|