【C++】Cpp入门基础知识

来源:互联网 发布:淘宝网奥特曼玩具 编辑:程序博客网 时间:2024/05/29 15:51

Cpp入门基础知识

 一,命名空间

    首先应该明白数据在内存中的存储位置,如下图所示;

 理解域为一个代码框,一个变量的作用域为一个代码框,在主函数外定义的无框变量的作用域是全局即整个程序。

在任何一个域中都可以使用全局变量,所以应尽量减少使用全局变量,会让程序不稳定。


在不同的域可以重名定义变量,如下面的变量a,输出时使用该域中的变量。

namespace定义一个域,using将这个域释放出来,都为全局变量;

域可以进行嵌套使用,输出时应使用域作用限定符::

#include <iostream>using namespace std;//使用命名空间std,将std释放出来namespace AA{int a = 10;int b = 20;}namespace BB1 //命名空间的嵌套使用{int i = 1;namespace BB2{int i = 2;}}int a = 0;//全局变量 存放在静态区中int main(){int a = 30;cout << "hello world" << endl;cout << a << endl;cout << BB1::BB2::i << endl;// ::域作用使用限定符return 0;}

 二,函数重载及省缺参数

 在C++中存在函数重载,即函数可以重名。但这俩个函数必须参数类型不同(数量,种类,顺序都可)来区别与使用函数。

在程序编译时将俩个函数名分别变为_z3funif和_z3funfi用以区分,3是函数名个数,i f分别为参数类型的首字母。

注意函数的返回值类型不能用于函数的区分。

#include <iostream>using namespace std;float fun(int a, float b){return a + b;}float fun(float a, int b){return a * b;}int main(){float a = fun(1, 2.0);float b = fun(1.0, 2);cout << a;cout << b;return 0;}

函数的实参可以省略不写,但需在形参中定义初始值,省参只能从左往右。

分为全省参数和半省参数

//函数省缺参数int f(int a = 10, int b = 20){return a + b;}int main(){int c = f(20);cout << c << endl;//40return 0;}
 三,指针和引用

    引用就是给变量(对象)取了一个别名,共用同一个内存空间。在同一个域中名字不能相同。

const的用法:对const修饰的变量要用常引用,对常量也用常引用,隐身类型转换时开辟了一个具有常性的临时变量要用const修饰。

void f(int **pptr){*pptr = (int*)malloc(4);}void f(const int *&ptr)//不改变加const{ptr = (int*)malloc(4);}int main(){int a = 10;int& b = a;const int c = 20;const int& b2 = c;//需要使用常引用const int& b3 = 3;//常量具有常性,可以使用常引用double d1 = 2.0;const int& b4 = d1;//隐式类型转换int * p = NULL;f(p);//1.函数内改变 2.提高效率return 0;}

函数传参是使用引用可以提高效率。

引用作为返回值

int& Add(int a, int b){int ret = a + b;return ret;}int add(int a, int b){int ret = a + b;return ret;}int main(){int& ret = Add(1, 2);cout << ret << endl;Add(2, 4);cout << ret << endl;return 0;}

当返回的变量出了作用域还在时可以使用引用。引用的本质也是地址是指针。引用相比指针不需要赋初值,更加灵活。









原创粉丝点击