c++笔记--基础

本文是对"铁道版"c++一书的知识点总结,如果侵权,请及时告知我,将尽快删去,本文禁止转载

函数原型

函数原型的参数表中可不包含参数的名字,而只包含它们的类型

如果不写函数类型,默认int

主函数main()不必进行原型说明

 

const修饰符

指向常量的指针

const char *pc="abcd";

不允许改变指针所指的常量,但是可以改变指针所指的地址

常指针

char * const pc="abcd";

可以改变指针所指地址中的数据,不能改变指针所指的地址

 

  1. 如果用const定义的是一个整型常量,关键字int可以省略
  2. 常量一旦建立,在程序的任何地方都不能被更改
  3. 与#define不同,const定义的常量可以有自己的数据类型,编译时有良好检测性
  4. 函数参数可以用const说明

 

int const a=3;

int *p=&a;//错误

 

内联函数(inline)

内联函数在第一次被调用之前必须进行完整的定义

内联函数空间换时间

 

带有默认参数值的函数

在此情况下,允许实参个数和形参个数不同

  1. 在函数原型中,所有采取默认值的参数都必须出现在不去默认值的参数的右面
  2. 在函数调用时,若某个参数省略,则其后的参数皆应省略且采用默认值

 

#include<iostream>

using namespace std;

void write(int =5);

int main()

{

write();

return 0;

}

void write(int x)

{

cout << x;

}

 

函数重载

在同一作用域内,只要函数参数的类型不同,或者参数个数不同,或者二者兼而有之,两个或者两个以上的函数可以使用相同的函数名

  1. 调用重载函数时,函数返回值类型不在参数匹配检查之列
  2. 函数重载与带默认值的函数一起使用时,有可能引起二义性

 

作用域标识符::

希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上"::"

 

强制类型转换

 

new和delete运算符

程序代码区,全程数据区,栈,堆

指针变量名=new 类型;

将该块内存的首地址存于指针变量中(能够自动返回正确的指针类型,没有足够内存返回NULL)

delete p; p=NULL;//避免多次删除带来的问题

指针变量名=new 类型名[下标表达式];

delete [ ]指针变量名;

指针变量名=new 类型名(初值);

运算符new不能对动态分配的数组存储区进行初始化

 

引用

引用和其代表的变量具有相同的地址

  1. 必须对引用进行初始化
  2. 为引用提供的初始值,可以是一个变量或是另一个引用
  3. 引用初始化后不能再被重新声明为另一个变量的引用

 

int &j;  //错误

 

使用引用作为返回值,可以将该函数调用放在赋值运算符的左面

 

int& index(int i)

{

return a[i];

}

 

index(2)=32;

 

  1. 不允许建立void类型的引用
  2. 不能建立引用的数组
  3. 不能建立引用的引用 int &&r=n;
  4. 不能建立指向引用的指针 int &*p=n;
  5. 可以将引用的地址赋给一个指针,此时指针指向的是原来的变量
  6. 可以用const对引用加以限定,不允许改变该引用的值

 

int i=5;

const int &a=i;

a=3; //错误

i=3; //正确,则a=3

 

猜你喜欢

转载自blog.csdn.net/smoggyxhdz/article/details/81782714