理论题:
1.std::cout<<0+'a'; 的输出是97 (0转换了类型成int,‘a'变成askll码)
2.std::cout<<0+"12.34";的输出是12.34 (0无用,忽略)
3.std::cout<<1+"12.34";则编译错误 (两个类型,且无法忽略一个)
4.int a; std::cin>>a; std::cout<<a; 则输出为0 (输入类型不符,输入无效)
5.#include<iostream> using namespace std; int main(){ int cout; cin>>cout; cout<<cout; }
无输出,因为命名冲突时用后来的,cout变量占掉了输出流cout
io流
endl,输出 '\n‘ 并冲洗输出流。例如:cout << endl;
dec, hex, oct,更改之后所有整数输入/输出的基数(进制)
setprecision(n),更改之后所有实数输出的浮点精度
fixed,scientific,更改之后所有实数用于浮点 I/O 的格式化
setw(n),更改下个输入/输出域的宽度,宽度为 n
left,right, 设置下一个填充字符的布置,即左对齐或右对齐
注意,含参数n的操纵符函数要用#include<iomanip>
声明具名命名空间:
namespace 命名空间名 { 声明序列 }
使用其他命名空间中的名字:
·以“无限定名”方式使用:作用范围从using 指令之后到指令作用域结尾为止
using namespace 命名空间名 ;
using 命名空间名 :: 成员名 ;
·以“有限定名”方式使用:作用范围仅为单次
命名空间名 :: 成员名
例如std::cout
•注意:C++比C严格,const 指针值(如“sysu”字面量)必须赋值给 const 指针变量
const char *cout1 = "hello world c++!"; 去掉const会警告
如int &x=a; 给a取了个叫x的别名
引用不是对象;它们不必占用存储。
•数组不能引用
•不存在指向引用的指针
•不存在引用的引用
从引用和别名的角度来理解这个程序:
函数返回值使用引用,则返回哪个变量,函数返回值就是谁的别名,因此那个变量要用static静态: