1.do-while循环判断括号内变量范围
1.首先,来看以下这段代码:将用于判断是否循环执行的变量的定义,放在循环体内部。
#include <iostream>
using namespace std;
int main()
{
do{
int choice;
cin>>choice;
cout<<"***"<<endl;
} while(choice);
return 0;
}
2.编译后dev会毫不留情地爆出[ERROR],他是这么说的:‘choice’ was not declared in this scope。
真的是没有定义吗?
3.那么把choice定义在外边试试:
#include <iostream>
using namespace std;
int main()
{
int choice;
do{
cin>>choice;
cout<<"***"<<endl;
} while(choice);
return 0;
}
4.可以正确执行了!原来呀,这是因为定义在循环内部的变量作用范围只在循环内for\while循环也是。在循环后无法再次使用。
2.双引号和单引号在比较时的区别
1.首先,我么来看一段代码:用”“将字符#引起来,与输入的字符型变量ch作比较
#include <iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
if(ch == "#")
{
cout<<"我是#号键!";
}
return 0;
}
2.编译,得到:[Error]ISO C++ forbids comparison between pointer and integer[-fpermissive]。这段报错的意思就是:C++不允许将指针和整数比较。
那你可能会问了:1)哪里来的整数(integer)呢?我们知道,C语言有个ASCLL编码,每个字符都对应这着一个十进制编码;2)哪里来的指针(pointer)呢?重点!!用双引号引起来表示的是这个字符的地址。
推荐文章:详细解释,值得一看click me
3.引入头文件时使用<>和“”的区别
<> :用于引入标准头文件,例如:C中<stdio.h>;C++中头文件。
“ ”:用于引入自定义头文件,例如:在一个项目中,自己写了一个文件(命名为:call.h),那么在主程序(命名为:main.cpp)中引入此文件时用:#include “call.h”。
推荐文章:详细解释,值得一看click me
4.引入头文件顺序重要吗
当然重要!在一个项目中,必不可少的就是在主程序中(假如叫做:main.cpp)引入多个文件(自己写的,或者是标准头文件)。那么先写哪个呢?随便写好不好?反正都放在程序的最开始的地方……
大错特错!!小编我因为这个引入头文件顺序问题闹了不少笑话 : () 。
#include "ususal_define.h"//内含标准头文件(要放在第一个位置)
#include "user_define.h"//内含用户我自定义的一些结构体等
#include "call.h"//用户我的一些调用函数(放在最后的位置)
int main()
{
//此处省略代码段……
return 0;
}
5.用制表符 \t 打印乘法表
按常理来说,一个制表符由系统决定它的大小,多少个空格,这是我原本理解的。突然遇到编写99乘法表,发现运用制表符居然可以使一位数和两位数乘法结果对齐,然后我就做了以下的测试。
#include <iostream>
using namespace std;
int main()
{
for(int i=1; i<10; i++)
{
for(int j=1; j<=i; j++)
cout<<j<<"*"<<i<<"="<<i*j<<"\t";
cout<<endl;
}
return 0;
}
/*
10 3
8 3
1 1 //3个空格
11 1 //2个空格
111 1 //1个空格
1111 1 //4
11111 1 //3
111111 1 //2
1111111 1 //1
11111111 1
*/
推荐文章:详细解释,值得一看click me