Compare commits
No commits in common. "4945f41af760e49d62f6f8f2415bb1e1ac1ec5b8" and "6bd91d4dca26fec2ef29293e3813fe8a1a42f3e7" have entirely different histories.
4945f41af7
...
6bd91d4dca
|
@ -32,6 +32,3 @@
|
||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
# 自定义忽略
|
|
||||||
test
|
|
||||||
.vscode
|
|
|
@ -1,9 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
cout << "Hello, World!" << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
14
day1/d10.cpp
14
day1/d10.cpp
|
@ -1,14 +0,0 @@
|
||||||
// bool 类型
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
bool flag = 2; // 非 0 即 true,0 为 false
|
|
||||||
if (flag)
|
|
||||||
cout << "true" << endl;
|
|
||||||
else
|
|
||||||
cout << "false" << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
11
day1/d11.c
11
day1/d11.c
|
@ -1,11 +0,0 @@
|
||||||
// c 中三目运算表达式返回的是 变量的值
|
|
||||||
// c++ 中三目运算表达式返回的是 变量 (对照 d11.cpp)
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int a = 10, b = 20;
|
|
||||||
(a > b ? a : b) = 100; // 不能这样写,因为 c 语言中三目运算表达式返回的是变量的值
|
|
||||||
printf("a = %d, b = %d\n", a, b);
|
|
||||||
return 0;
|
|
||||||
}
|
|
14
day1/d11.cpp
14
day1/d11.cpp
|
@ -1,14 +0,0 @@
|
||||||
// c 中三目运算表达式返回的是 变量的值 (对照 d11.c)
|
|
||||||
// c++ 中三目运算表达式返回的是 变量
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int a = 10, b = 20;
|
|
||||||
(a > b ? a : b) = 100;
|
|
||||||
cout << "a = " << a << endl;
|
|
||||||
cout << "b = " << b << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
37
day1/d12.cpp
37
day1/d12.cpp
|
@ -1,37 +0,0 @@
|
||||||
// const
|
|
||||||
// c++ 中 const 在定义时不会创建内存空间,取地址时会创建内存空间
|
|
||||||
// 或者把它定义为 extern 时,也会创建内存空间
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <cstdio>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
const int n = 10; // 不会创建内存空间,相当于宏定义
|
|
||||||
printf("n addr = %p\n", &n); // 取 const 变量的地址时会创建内存空间
|
|
||||||
return 0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
// C++ 中 const 的特性:在定义时不会创建内存空间,取地址时会创建内存空间
|
|
||||||
const int x = 10; // 在符号表中创建 x,即没有在栈中开辟空间
|
|
||||||
int *p = (int *)&x; // 在栈中开辟空间,p 指针指向,空间的值是 x 符号表中的数据
|
|
||||||
*p = 100; // 修改的是栈中的空间,而不是符号表中的数据
|
|
||||||
cout << "x = " << x << endl;
|
|
||||||
cout << "*p = " << *p << endl;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 如果 const 变量初始化为一个变量时,则会在栈中开辟空间
|
|
||||||
int x = 20; // 在栈中开辟空间,存储常量 20
|
|
||||||
const int X = x; // 在符号表中创建 X,并且赋值变量,此时在栈中开辟空间,存储常量 20
|
|
||||||
int *p = (int *)&X; // p 指向了 x 的地址,但是 x 是 const,所以 p 不能修改 x 的值
|
|
||||||
*p = 100; // 会修改栈中的空间,而不是符号表中的数据,因此 X 的值会改变
|
|
||||||
cout << "x = " << x << endl;
|
|
||||||
cout << "X = " << X << endl;
|
|
||||||
cout << "*p = " << *p << endl; // *p = 100
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
13
day1/d2.cpp
13
day1/d2.cpp
|
@ -1,13 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int x = 200;
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int x = 100;
|
|
||||||
cout << "x = " << x << endl;
|
|
||||||
// ::x 表示全局的 x
|
|
||||||
cout << "全局的 x = " << ::x << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
57
day1/d3.cpp
57
day1/d3.cpp
|
@ -1,57 +0,0 @@
|
||||||
// 命名空间
|
|
||||||
#include <iostream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
namespace A
|
|
||||||
{
|
|
||||||
// 声明变量成员,可以指定初始化
|
|
||||||
int x = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace B
|
|
||||||
{
|
|
||||||
int x = 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace C
|
|
||||||
{
|
|
||||||
// 命名空间的嵌套
|
|
||||||
namespace AA
|
|
||||||
{
|
|
||||||
int x = 100;
|
|
||||||
}
|
|
||||||
namespace BB
|
|
||||||
{
|
|
||||||
int x = 200;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace D
|
|
||||||
{
|
|
||||||
int x = 1;
|
|
||||||
void show_x() // 定义函数
|
|
||||||
{
|
|
||||||
cout << "D namespace x: " << x << endl;
|
|
||||||
}
|
|
||||||
int add(int y); // 声明函数
|
|
||||||
}
|
|
||||||
|
|
||||||
int D::add(int y)
|
|
||||||
{
|
|
||||||
// 可以返回当前命名空间的所有成员
|
|
||||||
return x + y;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
cout << "A x = " << A::x << endl;
|
|
||||||
cout << "B x = " << B::x << endl;
|
|
||||||
cout << "C-AA x = " << C::AA::x << endl;
|
|
||||||
cout << "C-BB x = " << C::BB::x << endl;
|
|
||||||
// 调用 D 的 show_x() 函数
|
|
||||||
D::show_x();
|
|
||||||
// 调用 D 的 add(int) 函数
|
|
||||||
cout << "D::add(100) = " << D::add(100) << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
16
day1/d4.cpp
16
day1/d4.cpp
|
@ -1,16 +0,0 @@
|
||||||
// 无名命名空间
|
|
||||||
// 无名命名空间的作用域为当前文件
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
int x = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char const *argv[])
|
|
||||||
{
|
|
||||||
cout << "x = " << x << endl; // x 在当前文件中任意位置都可以访问
|
|
||||||
return 0;
|
|
||||||
}
|
|
34
day1/d5.cpp
34
day1/d5.cpp
|
@ -1,34 +0,0 @@
|
||||||
// 命名空间的使用
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std; // 当前位置向下,可以访问 std 命名空间中的所有成员
|
|
||||||
|
|
||||||
namespace A
|
|
||||||
{
|
|
||||||
int a = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace B
|
|
||||||
{
|
|
||||||
int a = 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace C
|
|
||||||
{
|
|
||||||
int a = 30;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char const *argv[])
|
|
||||||
{
|
|
||||||
using namespace A;
|
|
||||||
cout << "A::a = " << a << endl; // 10
|
|
||||||
|
|
||||||
// using namespace B;
|
|
||||||
using B::a; // 替换了当前位置的 a
|
|
||||||
cout << "B::a = " << a << endl; // 20
|
|
||||||
|
|
||||||
// using namespace C;
|
|
||||||
cout << "C::a = " << C::a << endl; // 30
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
23
day1/d6.cpp
23
day1/d6.cpp
|
@ -1,23 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
// 函数的重载,和函数名、返回值类型、参数列表有关
|
|
||||||
// 函数名相同,参数列表不同(个数、类型、顺序),构成重载
|
|
||||||
namespace A
|
|
||||||
{
|
|
||||||
int add(int a, int b) { return a + b; }
|
|
||||||
float add(int a, float b) { return a * 2.0f + b; }
|
|
||||||
double add(int a, double b) { return a * 3.0 + b; }
|
|
||||||
int add(int a, int b, int c) { return a + b + c; }
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// 目的:调用 A 命名空间中的 add 函数
|
|
||||||
using A::add;
|
|
||||||
// 调用函数时,编译器会根据参数列表的类型,自动匹配对应的函数
|
|
||||||
cout << "add(1, 1.5f) = " << add(1, 1.5f) << endl;
|
|
||||||
cout << "add(1, 1.5) = " << add(1, 1.5) << endl;
|
|
||||||
cout << "add(1, 3) = " << add(1, 3) << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
15
day1/d7.c
15
day1/d7.c
|
@ -1,15 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
// c 语言中可以使用无类型的函数参数
|
|
||||||
// C++ 中不允许使用无类型的函数参数 (对照 d7.cpp)
|
|
||||||
void show(x)
|
|
||||||
{
|
|
||||||
printf("x = %d\n", (int)x);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
show(20);
|
|
||||||
show(15.0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
16
day1/d7.cpp
16
day1/d7.cpp
|
@ -1,16 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
// c 语言中可以使用无类型的函数参数 (对照 d7.c)
|
|
||||||
// C++ 中不允许使用无类型的函数参数
|
|
||||||
void show(int x)
|
|
||||||
{
|
|
||||||
cout << "x = " << (int)x << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
show(20);
|
|
||||||
show(15.0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
27
day1/d8.cpp
27
day1/d8.cpp
|
@ -1,27 +0,0 @@
|
||||||
// C++ 中不同类型的变量之间赋值时,需要明确的使用强制类型转换
|
|
||||||
#include <iostream>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <cstring>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
typedef enum COLOR
|
|
||||||
{
|
|
||||||
GREEN = 1,
|
|
||||||
RED = 5,
|
|
||||||
BLUE // 6
|
|
||||||
} color;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int a = 129;
|
|
||||||
char b = a; // 隐式类型转换(大类型转换为小类型)(不安全)
|
|
||||||
cout << "b = " << (int)b << endl; // -127
|
|
||||||
|
|
||||||
// C++ 中必须使用强制类型转换,明确数据类型
|
|
||||||
char *p = (char *)malloc(32); // malloc 返回值是 void *,需要强制类型转换
|
|
||||||
// char *p = malloc(32); // malloc 返回值是 void *,需要强制类型转换
|
|
||||||
strcpy(p, "hello world");
|
|
||||||
cout << "p = " << p << endl; // p 为指针,输出的是地址的内容
|
|
||||||
return 0;
|
|
||||||
}
|
|
18
day1/d9.cpp
18
day1/d9.cpp
|
@ -1,18 +0,0 @@
|
||||||
// C++ 中使用 结构体 不需要加 struct
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
struct S
|
|
||||||
{
|
|
||||||
int id;
|
|
||||||
char name[30];
|
|
||||||
};
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// struct S s1 = {1, "张三"}; // C 语言中使用结构体需要加 struct
|
|
||||||
S s1 = {1, "张三"}; // C++ 中使用结构体不需要加 struct
|
|
||||||
cout << "s1.id = " << s1.id << "\ns1.name = " << s1.name << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
namespace Circle
|
|
||||||
{
|
|
||||||
float r;
|
|
||||||
float s();
|
|
||||||
}
|
|
||||||
|
|
||||||
float Circle::s()
|
|
||||||
{
|
|
||||||
return 3.14 * r * r;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Range
|
|
||||||
{
|
|
||||||
int w, h;
|
|
||||||
int s();
|
|
||||||
}
|
|
||||||
|
|
||||||
int Range::s()
|
|
||||||
{
|
|
||||||
return w * h;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
cout << "输入半径:";
|
|
||||||
cin >> Circle::r;
|
|
||||||
float s1 = Circle::s();
|
|
||||||
cout << "面积: " << s1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <cstring>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
typedef struct file_node_s
|
|
||||||
{
|
|
||||||
char filename[32];
|
|
||||||
int filesize;
|
|
||||||
|
|
||||||
file_node_s *next;
|
|
||||||
} FileNode;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
FileNode *head = NULL;
|
|
||||||
FileNode *fn1 = (FileNode *)malloc(sizeof(FileNode));
|
|
||||||
strcpy(fn1->filename, "数学");
|
|
||||||
fn1->filesize = 1000;
|
|
||||||
FileNode *fn2 = (FileNode *)malloc(sizeof(FileNode));
|
|
||||||
strcpy(fn2->filename, "语文");
|
|
||||||
fn2->filesize = 1200;
|
|
||||||
FileNode *fn3 = (FileNode *)malloc(sizeof(FileNode));
|
|
||||||
strcpy(fn3->filename, "英语");
|
|
||||||
fn3->filesize = 1150;
|
|
||||||
head = fn1;
|
|
||||||
fn1->next = fn3;
|
|
||||||
fn3->next = fn2;
|
|
||||||
fn2->next = NULL;
|
|
||||||
|
|
||||||
FileNode *p = head;
|
|
||||||
while (p != NULL)
|
|
||||||
{
|
|
||||||
cout << "文件名: " << p->filename << ", 文件大小: " << p->filesize << endl;
|
|
||||||
p = p->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
const float PI = 3.14159;
|
|
||||||
|
|
||||||
double Area(double a, double b)
|
|
||||||
{
|
|
||||||
return PI * pow(a, 2) * b / 360;
|
|
||||||
}
|
|
||||||
double Area(double a)
|
|
||||||
{
|
|
||||||
return PI * pow(a, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char const *argv[])
|
|
||||||
{
|
|
||||||
double r, x;
|
|
||||||
cout << "请输入半径和角度: " << endl;
|
|
||||||
cin >> r >> x;
|
|
||||||
cout << "半径为 " << r << ", 角度为 " << x << " 的扇形面积为: " << Area(r, x) << endl;
|
|
||||||
cout << "半径为 " << r << ", 的圆的面积为: " << Area(r) << endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue