C++基础知识点

来源:互联网 发布:matlab中矩阵归一化 编辑:程序博客网 时间:2024/06/08 00:30
1.命名空间 
2.C++基本的输入输出流(简单介绍一下就行) 
3.重载(C++为什么支持重载?) 
4.C++缺省参数 

5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)

命名空间 第一题:命名空间//1,可以嵌套//int a = 10;//namespace AA//{//int a = 0;//}//namespace BB//{//namespace CC//{//int a = 100;//}//}//int main()//{//cout << a << endl;//cout << AA::a << endl;//cout << BB::CC::a << endl;//return 0;//}//2,如果展开两个或者以上命名空间,那么如果有相同的命名,那么就会冲突namespace AA{int a = 10;}namespace BB{int a = 100;}using namespace AA;using namespace BB;int main(){cout << a << endl;//这里会出现a不明确。}第二题:.C++基本的输入输出流(简单介绍一下就行) //.C++基本的输入输出流(简单介绍一下就行) //cout : 输出流对象, <<  输出,cout<<a<<endl 就是先把a输出到标准输出流cout上,然后把换行符输出到a后边//cin  : 输入流对象,  >>  输入,cin>>a,        就是把标准输入流的东西输入到a中。//         箭头所指方向就是要输入或者输出的地方,第三题:重载(C++为什么支持重载?) //重载(C++为什么支持重载?) //重载; 1,同一个作用域//       2, 函数名相同//       3, 参数不同//1,类型//2,参数个数//3,参数顺序//  支持重载是因为,同一个函数名,不同参数在函数调用过程中,产生的名字不同,比如fun(char c),fun(int a),//  产生的名字是,_z3func,_z3funi,参数不同或者顺序不同,或者个数不同,产生的名字不同,因此可以支持函数重载。//  名字是独一无二的,不产生冲突。第四题:C++缺省参数 //C++缺省参数 int Add(int a = 10, int b = 20){return a + b;}int main(){Add();//全缺省,就按函数默认的,10+20 = 30Add(1);//局部缺省,使用有参数的,缺省的部分按照默认的参数。Add(1, 2);//不缺省,就按传参的参数。//注:不能缺前半部分,比如(,10),只能从左向右。}第五题:指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)//指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)//引用概念://特点:1,引用可以有多个别名//2, 引用必须初始化//      3, 一个引用名不能被多次引用//用法一;做参数//void fun(int*& pstr)//{//pstr = (int*)malloc(4);//}//int main()//{//int* p = 0;//fun(p);//free(p);//return 0;//}//注:这里的用法和指针类似,只不过比指针简单。//指针用法//void fun(int** pstr)//{//*pstr = (int*)malloc(4);//}//int main()//{//int* p = 0;//fun(&p);//free(p);//return 0;//}//用法二:const 用法//double f = 3.3333//int& h = f;//注:这里不通过,因为浮点型在转换整形的过程中,有零时变量,临时变量具有常属性,用const修饰//const int& h = f;//通过,int& h = f;中间有临时变量,因此要用const修饰。//指针和引用的区别//1.指针和引用的定义和性质区别:////(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:////int a = 1; int *p = &a;////int a = 1; int &b = a;////上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。////而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单元。////(2)可以有const指针,但是没有const引用;////(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)////(4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;////(5)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。////(6)"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小;////(7)指针和引用的自增(++)运算意义不一样;


原创粉丝点击