cpp基础语法
指针
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
|
#include <bits/stdc++.h>
using namespace std;
int * func() {
int *p = new int(10);
return p;
}
int main(void) {
int *p = func();
cout << "aa" <<endl;
cout << *p <<endl ;
delete(p);
p = NULL;
cout << *p <<endl;
cout << "hello world" <<endl;
return 0;
}
|
1
2
3
4
|
$ g++ app.cpp && ./a.out
aa
10
Segmentation fault
|
c++ 采用值拷贝,要想返回一块内存地址,就要使用指针的方式,要想用指针,就必须要 new
关键字 在 堆内存上开辟空间
引用
注意: 引用一旦创建就不能被改变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <bits/stdc++.h>
using namespace std;
int * func() {
int *p = new int(10);
return p;
}
int main(void) {
int *p = func();
cout << "aa" <<endl;
cout << *p <<endl ;
int &b = *p;
// 查看引用的地址
cout << &b << " -> " << p <<endl;
delete(p);
p = NULL;
cout << "hello world" <<endl;
return 0;
}
|
1
2
3
4
5
|
:!./a.out
aa
10
0x55ad9b176eb0 -> 0x55ad9b176eb0
hello world
|
引用作为函数返回值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <bits/stdc++.h>
using namespace std;
int& func() {
// 注意,局部变量不能返回引用,要返回堆内存的指针变量
int *p = new int(10);
return *p;
}
int & call() {
return func();
}
int main(void) {
int &ref = call();
cout << ref <<endl;
cout << "hello world" <<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
|
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159
class Circle {
public:
int m_r;
double getTotalLength() {
return 2*PI * m_r;
}
};
int main(void) {
Circle c;
c.m_r = 10;
cout << c.getTotalLength() <<endl;
return 0;
};
|
项目实战
可以试着使用c实现一个 脚本语言
不错的教程
ubasic 脚本语言