C++基础

什么是c++:
以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。
c++发展史:
c++98,c++标准第一个版本,以模板方式重写C++标准库,引入了STL(标准模板库);
c++11
c++关键字
63个
命名空间:
using namespace std;C++库中所有的东西都是放在std命名空间中。
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
输入输出
使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。
使用C++输入输出更方便,不需增加数据格式控制,比如:整形–%d,字符–%c
缺省参数
类似于备胎,函数中参数有值,当main中不传参数时,直接用函数中的参数。函数中所有参数有都有值,称为全缺省,部分有值是半缺省
半缺省必须从右往左连续缺省。调用时,如果要传参必须要从左往右依次传参,不能空缺。缺省参数不能在函数声明和定义中同时出现。 缺省值必须是常量或者全局变量。
函数重载
一词多义,多种调用方式。函数名相同,参数(类型or个数or类型顺序)不同,对返回值没有要求。只是返回值不同,不能构成重载。
extern “C”。 有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern “C”,意思是告诉编译器,将该函数按照C语言规则来编译
引用
int& ra =a;ra是a的引用,相当于给a取别名, &a是取地址,a和ra引用的变量共用同一块内存空间
类型& 引用变量名(对象名) = 引用实体.注意:引用类型必须和引用实体是同种类型的
特性:(1)定义时必须进行初始化(2)一个引用可以有多个(3)引用一旦引用一个实体,就不能再引用其他实体

const int a= 10;
//int& b = a;错误,权限放大

//权限缩小
int c = 20;
int& d = c;
const int& e = c;

`//赋值``
const int x = 10;
int y = x;
//权限的缩小和放大规则适用于引用和指针

const int a = 10;
const int* cp1 = &a;
//int*  p1 = cp1;不能,属于权限的放大
 ``
int c = 20;
int*  p2 = &c;
const int* cp2 = p2;//可以,属于权限的缩小 

可以做参数,可以做返回值

注意:如果函数返回时,出了函数作用域,如果返回对象还未还给系统,则可以使用引用返回,如果已经还给系统了,则必须使用传值返回。
内联函数
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开
特性: inline是一种以空间换时间的做法,省去调用函数额开销。inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环/递归等等,编译器优化时会忽略掉内联。inline不建议声明和定义分离,分离会导致链接错误。
auto关键字

int a = 0;
auto b = a;//b的类型是根据a的类型推导出int 
int& c = a;//int
auto& d = a;//int
auto* e = &a;//int*
auto f = &a;//int*

auto不能作为函数的参数,auto不能直接用来声明数组
范围for
写起来简单

int main ()
{
  int array[] = {1,2,3,4,5};
  for(auto e : array)
  {
    e *= 2;
  }
   for(auto e : array)
  {
    cout << e << "";
  }
  cout << end1;
  return 0;
}

指针空值
#define NULL NULL 等价于0

int* p1 = nullptr;//推荐这样写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值