第三章 基本数据类型
学习要点:
- 不要用#include”stdio.h”,使用<>来引用,<>用来引用标准头文件,”“引用自定义头文件
- iostream.h和string.h头文件已经废弃,改用iostream和cstring
- 不要将main函数的返回值定义为void
- int main(int argc,char** argv)可以传参进main函数
- 声明extern和定义
可以声明多次,但只能定义一次,声明只是说变量定义在其他地方,不分配内存空间,定义的时候才分配空间 - 命名时最好不要使用双下划线开头或者下划线加字母开头,这些命名是预留给标准库的
- 标识符只能在说明他或者定义他的地方可见
- 常见的预处理命令及解释
#include将另一个源文件的内容合并到当前程序中
#define 定义宏或符号,可以使用#undef取消定义.带参数宏的定义及使用如下
#include<iostream>
#include<iomanip>
#define Print(Var,digits) cout<<setw(digits)<<(Var)<<endl
using namespace std;
int main(){
//测试宏定义,为防止替换出现问题,在用参数时加上().
double ival =123.456454;
Print(ival,15);
return 0;
}
- 命名空间的使用,namespace
#include<iostream>
using namespace std;
//创建一个命名空间,里面赋予一些变量与属性,可以使用
//myown1::user_name访问,或者使用using namespace myown1后直接访问
namespace myown1{
string user_name="myown1";
int user_age=18;
}
using namespace myown1;
int main(){
//使用
cout<<""
<<myown1::user_name
<<"------"<<myown1::user_age<<endl;
cout<<""
<<user_name
<<"------"<<user_age<<endl;
}
第四章 运算符与表达式
学习要点
- 位逻辑运算符
~按位取反、&按位取与、|按位取或、^按位异或(相同为0,不同为1) 移位运算符
<<左移、>>右移
移位操作不要超过界限,否则结果不可预期
int flaga = 5<<1;
int flagb = 3>>1;逗号表达式
表达式1,表达式2
求解形式是先解表达式1,再解表达式2,最后整个逗号表达式的结果为表达式2的结果。(程序中使用逗号表达式通常是求表达式内各项的值,不一定求整个逗号表达式的值)
疑难解惑
- C++位逻辑表达式的作用
1.掩码
通过&将某些位置为开(1),将某些位置为关(0).将掩码0看做不透明,1看做透明
2.打开位
通过|打开一个值的特定位,同时其他位置保持不变.
3.关闭位
通过&关闭一个值的特定位,同时其他位置保持不变.
4.转置位
如果为1则转置为0,如果为0则转置为1.
#include<iostream>
using namespace std;
int main(){
//掩码的测试
//只显示第二三位
//107---->0110 1011
//6------>0000 0110
//2------>0000 0010
int a = 107&6;
cout<<"掩码的测试"<<a<<endl;
//打开位,打开二三两位,其余保持不变
//111 --->0110 1111
int b = 107|6;
cout<<"打开位的测试"<<b<<endl;
//关闭位
//105 --->0110 1001
int c = 107&~6;
cout<<"关闭位的测试"<<c<<endl;
//转置位,转置二三位109---->01101101
int d = 107^6;
cout<<"转置位的测试"<<d<<endl;
}