一:const的一些错误用法
1.const int x=3;x=5;
2.int x=3;const int y=x;y=5;
3.int x=3;const int *y=&x;*y=5;
4.int x=3,z=4;int* const y=&x;y=&z;
5.const int x=3;const int y=&x;y=5;
6.const int x=3;int* y=&x;
//定义一个可变的指针指向一个不可变的变量,编译器会报错
二:函数特性
1.函数参数默认值
正确表述:void fun(int x,int y=5,int z=10)
错误表述:void fun(int x,int y=5,int z)
有默认参数值的参数必须在参数表的最右端
/*函数申明*/
void fun(int i,int j=5,int k=10);
void fun(int i,int j,int k)
{
cout<<i<<j<<k;
}一般把函数参数默认值放在函数申明里面,而不是在函数定义里面int main()
{
fun(20);
fun(20,30);
fun(20,30,40);
return 0;
}无实参则用默认值,有实参则覆盖默认值2.函数重载
定义:在相同的定义域内用同一函数名定义的多个函数,这些函数的参数类型或参数个数不同。
例如:
getMax(int x,int y,int z)
getMax(double x,double y)
好处:提高编码效率
3.内联函数(inline)
3.1 内联编译是建议性的,即使在所有函数前都加上关键字inline,也不一定成为内联函数,是由编译器决定的。
3.2 逻辑简单,调用频繁的函数建议使用内联函数
3.3 递归函数无法使用内联函数
代码演示:
/*函数默认值*/
#include <iostream>
#include <stdlib.h>
using namespace std;
/*带有默认参数的函数申明*/
void fun(int i=30,int j=20,int k=10);
int main(void)
{
/*函数调用*/
fun();
fun(100);
fun(100,200);
fun(100,200,300);
system("pause");
return 0;
}
/*函数实现*/
void fun(int i, int j, int k)
{
cout << i << "," << j << "," << k << endl;
}三:内存管理
申请内存:new 释放内存:delete 并给指针赋NULL
/*申请单个内存*/
int *p=new int;
if(NULL==p)
{
//内存分配失败
//异常处理
}
delete p;
p=NULL;/*申请内存块*/
int *p=new int[1000];
if(NULL==p)
{
//内存分配失败
//异常处理
}
delete []p;
p=NULL;
1288

被折叠的 条评论
为什么被折叠?



