一、与C的区别
C语言: 面向过程编程语言.
C++语言: 面向对象编程语言,以及支持泛型编程.
第一个C++程序:
1.文件命名:以.cpp结尾
2.头文件:
C++自带的头文件不再以.h结尾.
如果需要添加C当中的头文件,C++通常会使用 #include <cmath>, 当然也可以 <math.h>
添加自己的头文件,则一样使用 #include "my.h"
二、名字空间(命名空间)
-
关键字:using 、namespace
-
作用:为了解决代码联合调试时,函数名或变量名冲突的问题.
-
用法:
namespace mySpace //制定自己的mySpace作用域 (定义名字空间). { //函数 //对象等... int num = 0; } using namespace <val>; 表示使用val这个名字空间.
-
作用域访问运算符: ::
访问名字空间中的内容: mySpace::num
如果想直接使用名字空间的内容:
采用using namespace mySpace;
不需要加 :: 可直接使用名字空间中的内容。
例如:
#include <iostream>
using namespace std;
namespace user1
{
int num = 34;
void fun(int a);
}
namespace user2
{
int num = 0;
}
using namespace user2;
int main(int argc, char *argv[])
{
std::cout << "hello wrold" << std::endl;
cout << user1::num << endl;
cout << num << endl;
int n = 12;
cout << "n=" << n << endl;
return 0;
}
注:以上虽然有两个 int num; 但是他们的名字空间不一样
三、输出对象:cout
在C中使用printf(),但在C++中使用 cout。
意义:该对象类似于stdout,往对象里面放置内容,就表示将内容输出到终端。
符号:<< 表示将数放置到 cout 对象
endl意义:跟 '\n' 一样换行
用法:cout 输出不需要加格式控制串(%d、%c...)、类型自动推导
例如:
int n = 12;
cout << n << endl;
四、输入对象:cin
意义:该对象类似于stdin,存放终端输入的内容
符号:cin >> 表示从cin 对象中获取到内容,然后存放在变量当中
用法:cin 输入也不需要加格式控制串(%d ,%c...)也不需要传递地址,类型自动推导
例如:
int n = 0;
cin >> n;
char buf[ 30] = {0} ;
cin >> buf;
支持连续输入:
cin >> n >> buf ;
而且能够检测输入类型是否正确:
int num = 0;
cin >> num; //类型正确则返回True 错误返回False
五、内存区域
-
代码区:用于存放代码执行指令(二进制)
-
全局区:静态数据以及全局数据,部分常量(字符串常量、const修饰的全局数据)
-
栈区:存放局部数据、函数参数等..
-
堆区:需要由程序员手动开辟以及手动释放.
-
代码编译后:
{
代码运行前:
{
代码区: 存放代码执行指令(二进制),是一个只读区域. 且部分可共享.
全局区: 静态数据以及全局数据,部分常量(字符串常量、const修饰的全局数据).
}
代码运行时:
{
栈区: 存放局部数据、函数参数等.. 空间由系统开辟、释放.
堆区: 需要由程序员手动开辟以及手动释放.
}
}
六、C++常量
-
通过define来定义常量.(标识常量)
#define NUM 12
-
通过const来定义常量.
const int num = 1; //num成为一个常量,任何方式都不能修改其值.
//int *p = # //编译报错
七、new与delete
new关键字:表示在堆区开辟空间,类似于C中malloc函数. 开辟成功后返回空间首地址
用法:
int *p = new int; //表示开辟一个整型空间.
初始化: int *q = new int(34); //()中表示初始化值.数组空间开辟:
int *p_arr = new int[5]; //5个整型元素的数组.
for(int i = 0; i < 5; i++)
{
p_arr[i] = i+1;
}
初始化: int *p_arr = new int[5]{1,5,7,8,9};练习: new 一个二维数组 new 指针数组.
-
delete关键字:表示释放堆区空间.
用法:
delete <地址>; int *p = new int;
例如: delete p; //只能释放一个对象空间.释放连续空间:
delete[] <连续空间首地址>;
例如: delete[] p;
八、引用
-
就是对变量进行取别名的操作
-
作用:
-
简化指针带来的繁琐操作.
-
在函数传参中,使用引用技术,可以在函数内部直接修改实参的值(避免了地址传递).
-
-
基本用法:
-
<数据类型> &引用名 = 变量名;
例如:
int a = 56;
int &r_a = a;
-
函数中使用引用技术:
-
void swap(int &n1, int &n2) { int temp = 0; temp = n1; n1 = n2; n2 = temp; } int main() { int a = 23; int b = 78; swap(a, b); }
以上就是今天分享的C++内容了有喜欢的可以看一下,明天再分享。