C++的入门基础知识
来源:互联网 发布:mac怎么卸载adobe 编辑:程序博客网 时间:2024/05/15 23:48
今天简单的介绍一下C++的入门基础知识,包括C++代码的基础以及指针与引用。
1、命名空间
命名空间用花括号将文件代码的一部分括起来,变成一个域。用namespace关键字开头组成名字,类似于类的命名。
namespace name1
{
int i=0;
}
使用命名空间中的元素时要使用作用域解析符:::,例如
name1::i=4
在编写C++代码时,我们需要在代码之前使用std命名空间,因为标准C++库是在std命名空间中被定义的。
所以编写代码有两种方式(1)在代码最前面加上using namespace std;
(2)在代码中使用std::来使用C++库中的成员
对于命名空间的详细介绍参见:http://blog.chinaunix.net/uid-26404477-id-3088450.html
下面举一个简单的C++代码例子
#include<iostream>using namespace std;int main(){int i = 4;cout << "i=" << i << endl;system("pause");return 0;}
2、C++基本的输出输入流
cout是标准输出流对象,<< 是输出操作符;
cin是标准输入流对象,>>是输入操作符;
endl是换行操作符;
他们都属于C++标准库,所以都在std的名字空间里面。
上面那个例子就运用了cout和<<。C++中的cin和cout类似于C中的scanf和printf,但运用有所不同。
格式化出入与输出详见:http://c.biancheng.net/cpp/biancheng/view/2227.html
3、C++中的重载
重载是指在同一作用域中,函数名相同,函数参数不同(类型不同或个数不同),与函数返回值无关。
#include<iostream>using namespace std;void fun(int a, int b);void fun(float a, int b);void fun(int a, int b, int c);int main(){int i = 4;cout << "i=" << i << endl;system("pause");return 0;}
C中不能重载函数,但是C++却可以,是因为C++的函数命名有一套自己得标准,并不仅仅依靠自己设定的函数名,而是与函数参数类型以及函数参数个数有关。
C++代码编译中编译器自动生成函数名再运行。
详细介绍可以打开链接:http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html
4、C++缺省参数
C++中编写函数可以运用缺省参数,即在函数参数处给出参数值。
(1)全缺省参数
void fun(int a=4,int b=5){ return a+b;}(2)半缺省参数
void fun(int a, int b=5){ return a+b;}
函数中如果有缺省参数,要么全缺省,要么半缺省,半缺省时只能缺省右边的参数,而且要参数连续,下面这两个函数参数是错误的。
5、指针和引用
引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名。
定义的格式为:
类型 &引用变量名 = 已定义过的变量名;
引用的特点:
a. 一个变量可取多个别名
b. 引用必须初始
c. 引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。
int main(){ int i=5; int &j=i; return 0;}在上述程序中,j是i的引用,即j是i的别名。
(1)引用可以做参数,可以提高效率,可以在函数内部改变变量的值。
const可以修饰引用:
(2)引用可以做返回值,在我的博客C++函数优化中有提到:http://blog.csdn.net/zoctopusd/article/details/74157214
引用做返回值时,返回的是别名,即临时拷贝,可以提高效率,但是也要小心使用,以下几种情况需要注意:
a.当变量为局部变量,即出了作用域不存在时,不能返回引用
b.当局部变量用static修饰时可以返回引用
c.临时变量不能返回引用
(3)引用与指针的区别与联系
a. 引用只能在定义时初始化一次,之后不能改变指向其它变量(从一而终);指针变量的值可变。
b. 引用必须指向有效的变量,指针可以为空。
c. sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小。
d. 指针和引用自增(++)自减(--)意义不一样。
e. 相对而言,引用比指针更安全。
总结一下:
指针比引用更灵活,但是也更危险。使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置0,否则可能存在野指针
问题。
- c语言基础知识入门
- 【C++】Cpp入门基础知识
- 【C++】入门基础知识
- FPGA入门的基础知识
- C++的入门基础知识
- Cpp的入门基础知识
- linux程序设计入门----基础知识:linux下C语言编程基础知识
- C语言的基础知识
- C语言的基础知识
- c~c++的基础知识
- 【c++】c++的基础知识
- C语言的基础知识
- C语言的基础知识
- C语言入门基础知识(一)
- 【c#】c sharp的基础知识
- C 语言的一些基础知识
- Objective-C 类的基础知识
- C#Winform编程的基础知识
- 使用MyEclipse制作报表
- 查看sqlserver被锁的表以及如何解锁
- 本地socket连接
- Shell替换:Shell变量替换,命令替换,转义字符
- 【SSM框架】使用MyBatis Generator自动创建代码
- C++的入门基础知识
- Spring-Boot学习笔记(一) 项目搭建和HelloWold
- 数据库索引设计与优化读书笔记--《四》为SELECT语句创建理想的索引
- 简单ngrok内网穿透工具使用
- VS2010 编译jrtplib
- [附中OJ 1491]小K的农场
- Linux实现定时器
- pci 设备使用pci_alloc_consistent 来申请dma可以简化code
- Activity之间的数据问题