思考一个问题:下面代码有错吗?
在test01函数体内又定义了一个int a,会报错么?如果不报错,那么输出的是全局的 a = 10 还是局部的a = 20?
namespace A{ int a = 10;}using namespace A;void test01(){ int a = 20; cout<<a<<endl;}答案是不会报错,输出的是局部的20,因为命名空间A内部的变量a在使用using关键字后相当于在全局定义了一个int a ;而在函数体内定义一个局部的 int a;两个变量的作用域不同,是可以定义同名变量的,输出的是局部变量的值,小伙伴的要注意区分~
C++输入和输出
- C语言用的是printf和scanf进行输入和输出的 。那么C++是用什么来进行输入输出的呢?
- C++用到的是cout(控制台)和cin(键盘)两个函数进行操作,使用是必须包含iostream的头文件及 std标准命名空间 。
- C++头文件不带.h,将std标准命名空间进行展开 。
int main(){ int a = 0; double b = 0.0; cin >> a; cin >> b; cout << "a = " << a << " b = " << b << endl; system("pause"); return EXIT_SUCCESS;}运行结果如下:
文章插图
缺省参数概念:
缺省参数是声明或定义函数时为函数的参数指定一个默认值 。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参 。
void PrintNum(int n = 0){ cout << n << endl;}int main(){ PrintNum();// 无参数时,使用参数的默认值 PrintNum(10);// 有参数时,使用指定的实参 system("pause"); return EXIT_SUCCESS;}全缺省参数参数都要一个默认值,给定的实参依次从左向右给形参赋值
注意:我们在调用函数时,只能缺省最右边的若干个参数,形如:
Fun(4, , 6);
这种调用是错误的调用方法 。void Func(int a = 10, int b = 20, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ // 实参从左向右一次给形参赋值 Func(); Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}运行结果如下:
文章插图
半缺省参数只有部分形参给定了默认值,半缺省参数必须从右往左依次来给出,不能间隔着给 。
值得注意的是,缺省参数只能为最右边的若干个 。
形如:
void Fun(int a=10, int b, int c = 30) { }
这样的语句是错误的用法 。形如:
Fun(1, ,3)
这种调用也是错误的 。void Func(int a, int b = 10, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}
经验总结扩展阅读
- 手机怎么把QQ空间说说一次性全删掉(qq如何恢复删掉的说说)
- 怎么一次性删掉QQ空间里的全部说说(翻看以前qq空间的说说)
- 怎么把空间说说全部清空(qq空间一键清空所有说说)
- 手机QQ空间怎么一次性删除说说求解(怎么一键删除qq说说)
- qq空间说说怎么全部删除(怎样一键清空qq空间)
- 小户型卧室如何设计 小户型卧室空间布局设计
- 恋梦空间郭蓉和谁在一起了?
- 空间站是静止的还是运动的
- 如何注销空间 1980717Z空间
- qq空间说说怎么全部删除(qq空间说说一键恢复)