1、C++编译过程
1.1、预处理,编译器将C++代码中的宏、引用等预处理指定进行展开,生成.i或.ii文件;
1.2、编译,编译器将展开后的文件进行编译生成汇编文件.s;
1.3、汇编,汇编器将汇编文件汇编生成链接文件.o或.obj;
1.4、链接,链接器将链接文件与库文件或第三方文件链接生成二进制文件,即可执行文件;
1.5、第一个C++程序
1
2
3
4
5
6
7
8
| #include
using namespace std;
int main(){
cout << "Hello Cpp!!" << endl;
return 0;
} |
#include
using namespace std;
int main(){
cout << "Hello Cpp!!" << endl;
return 0;
}
2、变量名三条定律
2.1、变量名只能是下划线、字母、数字;
2.2、首字母只能是下划线、字母;
2.3、不能是保留字/关键字;
3、C++常用数据类型
3.1、int –> 32位 -2147483648~+2147483647;
3.2、short int –> 16位 -32768~+32767;
3.3、long int –> 32位 -2147483648~+2147483647;
3.4、long long int –> 64位 -9223372036854775808 ~ +9223372036854775807;
3.5、float 32位 –> -3.4E-38~+3.4E+38;
3.6、double 64位 –> -1.7E-308~+1.7E+308;
3.7、char 8位 –> -128~+127;
3.8、关于精度的一个示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include
#include
using namespace std;
int main(){
int i = 1234567890;
float f = 1234567890123456789;
double d = 1234567890123456789;
long double ld = 1234567890123456789;
cout << setprecision(20);
cout << i << "n" << f << "n" << d << "n" << ld << endl;
return 0;
} |
#include
#include
using namespace std;
int main(){
int i = 1234567890;
float f = 1234567890123456789;
double d = 1234567890123456789;
long double ld = 1234567890123456789;
cout << setprecision(20);
cout << i << "n" << f << "n" << d << "n" << ld << endl;
return 0;
}
1234567890
1234567939550609408
1234567890123456768
1234567890123456789
Program ended with exit code: 0
4、经典冒泡排序C++实现
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
using namespace std;
int main()
{
// 数组、数组长度、循环次数
int array[] = {128, 1, 11, 3, 33, 71, 2, 31, 4, 25, 61};
int len = sizeof(array) / sizeof(array[0]);
int loop_count = len - 1;
// 冒泡次数循环
for (int i = 0; i < loop_count; i++){
// 单次冒泡比较循环
for (int j = 0; j < loop_count - i; j++){ if (array[j] > array[j+1]){
array[j] = array[j] + array[j+1];
array[j+1] = array[j] - array[j+1];
array[j] = array[j] - array[j+1];
}
}
}
for (int i = 0; i < len; i++){
cout << array[i] << endl;
}
return 0;
} |
#include
using namespace std;
int main()
{
// 数组、数组长度、循环次数
int array[] = {128, 1, 11, 3, 33, 71, 2, 31, 4, 25, 61};
int len = sizeof(array) / sizeof(array[0]);
int loop_count = len - 1;
// 冒泡次数循环
for (int i = 0; i < loop_count; i++){
// 单次冒泡比较循环
for (int j = 0; j < loop_count - i; j++){ if (array[j] > array[j+1]){
array[j] = array[j] + array[j+1];
array[j+1] = array[j] - array[j+1];
array[j] = array[j] - array[j+1];
}
}
}
for (int i = 0; i < len; i++){
cout << array[i] << endl;
}
return 0;
}
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
| #include
using namespace std;
int main()
{
// 数组、数组长度、循环次数(最后一个数不需要比较)
int array[] = {2, 1, 4, 3, 6, 5, 8, 7, 10, 9};
int len = sizeof(array) / sizeof(array[0]);
int loop_count = len - 1;
for (int i = 0; i < loop_count; i++){
// 调换前假设当前第一个为最小数
int min_index = i;
// 从第1个开始循环,可减少一次循环
for (int j = i + 1; j < len; j++){
if (array[j] < array[min_index]){
min_index = j;
}
}
// 如果第一个为最小数,不交换
if (i != min_index){
array[i] = array[i] + array[min_index];
array[min_index] = array[i] - array[min_index];
array[i] = array[i] - array[min_index];
}
}
// 重新打印数组中的值(排序后)
for (int i = 0; i < len; i++){
cout << array[i] << " ";
}
return 0;
} |
#include
using namespace std;
int main()
{
// 数组、数组长度、循环次数(最后一个数不需要比较)
int array[] = {2, 1, 4, 3, 6, 5, 8, 7, 10, 9};
int len = sizeof(array) / sizeof(array[0]);
int loop_count = len - 1;
for (int i = 0; i < loop_count; i++){
// 调换前假设当前第一个为最小数
int min_index = i;
// 从第1个开始循环,可减少一次循环
for (int j = i + 1; j < len; j++){
if (array[j] < array[min_index]){
min_index = j;
}
}
// 如果第一个为最小数,不交换
if (i != min_index){
array[i] = array[i] + array[min_index];
array[min_index] = array[i] - array[min_index];
array[i] = array[i] - array[min_index];
}
}
// 重新打印数组中的值(排序后)
for (int i = 0; i < len; i++){
cout << array[i] << " ";
}
return 0;
}
[……]
继续阅读