公司网站建设计入什么科目,app上架要多少钱,公司网站域名申请,做婚恋网站的思路目录
一、命名空间
1、命名空间的定义
2、命名空间的使用
二、输入输出
三、缺省参数
1、缺省参数的概念
2、缺省参数的分类
四、函数重载
五、引用
1.引用的概念
2.引用的特性
3、引用和指针的区别
六、内联函数
七、基于范围的for循环 一、命名空间 命名空…目录
一、命名空间
1、命名空间的定义
2、命名空间的使用
二、输入输出
三、缺省参数
1、缺省参数的概念
2、缺省参数的分类
四、函数重载
五、引用
1.引用的概念
2.引用的特性
3、引用和指针的区别
六、内联函数
七、基于范围的for循环 一、命名空间 命名空间用来对标识符本地化避免命名冲突。
1、命名空间的定义 定义命名空间需要使用namespace关键字后面跟命名空间的名字然后接一对{}即可{}里边为命名空间的成员。 1、命名空间可以定义变量/函数/类型
//命名空间
namespace lbj
{//定义变量int rand 10;//定义函数int Add(int left, int right){return left right;}//定义类型struct Node{struct Node* next;int val;};
} 2、命名空间可以嵌套定义
//2.命名空间的嵌套
namespace lbj
{int a;int b;int Add(int left, int right){return left right;}namespace lbj_1{int c;int d;int Sub(int left, int right){return left - right;}}
} 3、同一个工程中允许存在多个相同名称的命名空间编译器会自动将所有同名命名空间合并成一个命名空间。一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中。
2、命名空间的使用 命名空间有三种使用方式 1、加命名空间名称及作用于限定符
lbj::a 2、使用using将命名空间中的某个成员引入
using lbj::a; 3、使用using namespace 命名空间名称引入
using namespace lbj;
二、输入输出 C的输入和输出分别是cin和cout,cin是标准输入对象cout 是标准输出对象使用时必须包含头文件iostream以及按命名空间使用方法使用std。 cin和cout可以自动识别变量类型不需要手动控制格式。
#includeiostream
using namespace std;
int main()
{int a;double b;char c;//可以自动识别变量类型cin a;cin b c;cout a endl;//endl表示换行输出cout b c endl;return 0;
} 三、缺省参数
1、缺省参数的概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值即默认值。在调用该函数时如果没有指定实参则采用该形参的缺省值否则使用指定的实参。
#includeiostream
using namespace std;
void Func(int a 0)
{cout a endl;
}
int main()
{Func(); //没有传参使用参数的默认值缺省值Func(10); //传参使用指定的实参return 0;
}
2、缺省参数的分类 1、全缺省参数所有参数全部设定了缺省值
//全缺省参数
void Func(int a1,int b4,int c7) 2、半缺省参数部分参数设定了缺省值
//半缺省参数
void Func(int a, int b, int c 7) 注意半缺省参数必须从右往左依次给出不能有间隔缺省参数不能在函数的声明和函数定义中同时出现一般采用设定在函数声明中不设定在函数定义中缺省值必须是常量或全局变量
四、函数重载 C允许在同一作用域中声明多个功能类似的同名函数这些同名函数的形参列表参数个数或参数类型或参数类型的顺序不同常用来实现功能类似数据类型不同的问题。函数重载即函数名相同参数不同。 参数类型不同
//1.参数类型不同
int Add(int left, int right)
{return left right;
}
double Add(double left, double right)
{return left right;
} 参数个数不同
//2.参数个数不同
void f()
{cout f() endl;
}
void f(int a)
{cout f(int a) endl;
} 参数类型的顺序不同
//3.参数类型的顺序不同
void f(int a, char b)
{cout f(int a, char b) endl;
}
void f(char a, int b)
{cout f(char a, int b) endl;
} C支持函数重载而C语言不支持函数重载是因为C是通过函数修饰规则来区分同名函数的只要函数的参数不同修试出来的名字也就不同所以支持重载而C语言没法识别同名函数所以不支持函数重载。如果两个同名函数的参数是一样的只有返回值不同是不能够成重载的。切记函数重载的关键是函数参数不是返回值。
五、引用
1.引用的概念 引用是给已经存在的变量取别名。引用变量和它所引用的实体变量共用一块内存空间编译器不需要为引用变量开辟新的内存空间。 类型引用变量名引用实体
void test()
{int a10;int raa;//引用变量ra是a的别名
}2.引用的特性 1引用在定义时必须初始化 2一个变量可以有多个引用 3引用一旦引用一个实体就不能再引用其他实体 4引用的权限可以平移、可以缩小但不能放大 5引用做函数参数改变形参也会改变实参。引用在语法概念上是一个别名和其引用实体共用同一快内存空间但是在底层实现上引用时按照指针的方式来实现的 6引用做返回值如果函数返回除了函数的作用域返回对象还在函数只运行了一次则可以使用引用返回如果返回对象已经还给系统函数运行了不止一次则必须使用传值返回不能再使用引用返回。
3、引用和指针的区别 1引用时一个变量的别名指针存储变量的地址。 2引用在定义时必须初始化指针不用。 3引用在引用一个实体之后就不能再引用其他实体指针可以在任何时候指向任何一个同类型实体。 4没有空引用有空指针。 5引用自加即引用的实体加1指针自加即指针向后偏移一个类型的大小。 6引用比指针使用起来相对更安全。
六、内联函数 以inline修饰的函数叫做内联函数编译时C会在调用内联函数的地方展开函数体没有函数调用建立栈帧的开销内联函数可以提升程序的运行效率。 inline是一种以空间换时间的做法在编译阶段会用函数体替换函数调用少了调用开销提高程序运行效率但是可能造成目标文件变大。 inline对于编译器而言只是一个建议、一个请求编译器可以选择忽略这个请求。一般函数规模较小、不是递归、频繁调用的函数使用内联。 inline不建议函数声明和定义分离指的是不同文件会导致连接错误。
七、基于范围的for循环 C11中引入了基于范围的for循环。for循环后的括号有冒号‘’分为两部分第一部分是范围内用于迭代的变量第二部分是被迭代的范围。
//基于范围的for循环
#includeiostream
using namespace std;
void test_for()
{int arr[] { 1,3,5,7,9 };for (auto e : arr){e * 2;}for (auto e : arr){cout e ;}cout endl;
}
int main()
{test_for();return 0;
} 注意基于范围的for循环中的continue和break和普通循环类似用法