C到C++基础

来源:互联网 发布:知乎绑定合适的话题 编辑:程序博客网 时间:2024/06/09 15:43

C++语言的新语法:
1.数据的输入和输出
2.变量的初始化以及常变量
3.引用以及函数间参数的引用传递
4.几种特殊形式的函数
5.命名空间
6.动态内存分配


1.输入输出:
C++用cin(键盘输入)/cout(屏幕输出) 输入/输出流
头文件:#include<iostream> //输入/输出流的头文件
 using namespace std //声明命名空间std,cin和cout在此空间
标准输入语句
cin>>变量1>>变量2>>……>>变量n;
cin表示键盘,可以输入多个变量的数据,用空格或Tab隔开,以回车结束
标准输出语句
cout<<表达式1<<表达式2<<……<<表达式n<<endl;
endl表示换行显示;显示结果没有分隔符

2.变量初始化
int x(10),y;//面向对象的初始化  推荐
int x = 10;
常变量 
const 数据类型 常变量名 = 初始值;(必须初始化,之后不能再次赋值)

3.引用:已有变量的别名
int x;
int &xa=x; // xa引用变量,xa和x公用一个内存单元,&引用变量标识符,x必须已经定义
cout<<xa // 间接访问
C++比C 的函数间参数增加了引用传递(值传递和指针传递)
引用传递实参必须是变量(不能是表达式),可以实现双向数据传递。
#include <iostream>
using namespace std;
void swap(int &a, int &b)  //有时候可以设置默认值,带默认值的形参必须放在形参列表的后面
{
 int t;
 t = a;a = b;b = t;
}
int main()
{
 int x=5, y=10;
 cout << x << "," << y << endl;
 swap(x, y);   //引用传递,减少内存占用,提高调用速度,双向数据传递
 cout << x << "," << y << endl;
 getchar();
}

4.重载函数和内联函数
重载函数,名字一样的函数,按形参实参类型匹配程度
内联函数:不降低程序执行效率,函数代码嵌入主函数调用处,执行时不进行函数跳转和数据传递(相比调用函数)
 执行同一函数很多次的时候可以使用内联函数
inline 函数定义……

5.命名空间:
定义函数和全局变量,解决不同空间的重名问题
namespace Tom
{
 int x, y;
 void function1(void);
 void function2(void);
}
三种访问方法:
Tom::x = 10;  //::作用域运算符
Tom::function1();
using Tom::x  //先声明,访问时候可以省略命名空间
x = 10;
using namespace Tom; //统一声明
x=y=10;

6.动态内存分配
C: malloc和free
C++: new和delete
单个变量的动态分配和释放
指针变量名 = new 数据类型(初始值) //数据类型:动态分配变量的数据类型,初始值(不初始化)可以省略
delete 指针变量名
int *p;
p = new int;
*p = 10;   //前三条语句可以简化为 int *p = new int(10);
count<<*p;
delete p;
一维数组的动态分配和释放
指针变量名 = new 数据类型[整数表达式];//整数表达式即一维数组元素个数,不能初始化
delete[]指针变量名;
int *p = new int[10];
*(p+1) = 10;   //也可以通过下标访问p[1] = 10;
cout<<*(p+1);
delete[]p;   //同时释放
一维数组的动态分配和释放
int **p = new (int*)[3];
for(int i=0; i<3; i++)
{
 *(p+i) = new int[3];
}
for(int i=0; i<3; i++)
{
 delete[]*(p+i);
}
delete[]p

原创粉丝点击