C++基础笔记1
1. 转义字符
2. 字符形变量
3. 输出32~127之间的所有字符
4.宽字符的输出
#include <iostream>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL,"'zh_TW");
//setlocale(LC_ALL,"chs");
//LC_ALL表示设置所有选项,
//chs表示设置地域
wchar_t wt[]=L"中";//L告诉编译器为"中"字分配两个字节的空间
wcout<<wt; //输出宽字符
return 0;
}
5. 各整型的长度及数值范围
6. 浮点型变量
Double双精度浮点型变量
例子:
#include <iostream>
#include <iomanip> //setprecision函数要求包含此头文件
using namespace std;
int main()
{
double a=12.3456789012345;//比float类型位数大一倍
cout<<setprecision(15)<<a;
//setprecision函数设置输出精度,这里设置了15位
return 0;
}
7.枚举类型常量
#include <iostream>
using namespace std;
int main()
{
enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
day today;
today=Monday;
if (today==Sunday||today==Saturday)
{
cout<<"周末休息\n";
}
else
cout<<"工作日\n";
return 0;
}
8.内联函数
即使用关键字inline声明函数,说明如下:
#include <iostream>
using namespace std;
class A
{
public:
inline void func(int); //内联函数
int get(){return x;}
private:
int x;
};
void A::func(int a){x=a;}
int main()
{
A a;
int x;
cout<<"请输入一个数字\n";
cin>>x;
a.func(x);
cout<<"\n";
cout<<"输入的数字为:"<<a.get()<<endl;
return 0;
}
9. const成员函数
10.构造函数与析构函数
11.数组对象
#include <iostream>
using namespace std;
class A
{
public:
A();
~A();
};
A::A(){cout<<"构造函数执行完毕!\n";}
A::~A(){cout<<"析构函数执行完毕!\n";}
int main()
{
A a[2]; //对象数组
return 0;
}
12.堆内存操作
#include <iostream>
using namespace std;
int main()
{
int *p=new int;//将在堆中分配的int型变量内存空间给p
*p=4;
cout<<*p<<endl;
delete p;//释放指针所指向的内存,而不是删除指针
cout<<*p<<endl;
p=0;
p=new int;//将在堆中分配的int型变量内存空间给p
*p=8;
cout<<*p<<endl;
delete p;
return 0;
}
13.内存泄漏
14.This变量
#include <iostream>
using namespace std;
class A
{
public:
int get() const{return i;}
void set(int x){i=x;cout<<"this变量保存的内存:\t"<<this<<endl;}
private:
int i;
};
int main()
{
A a;
a.set(9);
cout<<"对象a的内存地址:\t"<<&a<<endl;
cout<<a.get()<<endl;
A b;
b.set(999);
cout<<"对象b的内存地址:\t"<<&b<<endl;
cout<<b.get()<<endl;
return 0;
}
15. 指针的常见错误
#include <iostream>
using namespace std;
int main()
{
int *p=new int;
*p=3;
cout<<"将3赋给p的地址后,指针p读取的值:\t"<<*p<<endl;
delete p;
p=0; //注:释放一个指针后,必须记得将其赋为空
//cout<<"删除空间后,指针p读取的值:\t\t"<<*p<<endl;
long *p1=new long;
//这里新开辟的long型变量空间的指针p1,这个p1其实指向的是释放掉的空间,也就是p所指向的空间。
cout<<"创建新空间后,指针p中保存的地址:\t"<<p<<endl;
*p1=999999;
cout<<"指向新空间的指针p1保存的地址:\t\t"<<p1<<endl;
p=new int;
*p=23;
cout<<"将23赋给p的地址后,指针p读取的值:\t"<<*p<<endl;
cout<<"将23赋给p的地址后,指针p1读取的值:\t"<<*p1<<endl;
delete p1;
return 0;
}
输出结果:
17.指向常量的指针(const int* p=new int)
18. 指向常量的常指针(const int* const p=new int)