异或运算可交换两变量的位置
a=a^b;
b=b^a;
a=a^b;
证明方法:由于位运算只与本身位有关,利用穷举法证明
①0与0:initial:a=0,b=0;
a=0,b=0;
a=0;b=0.
②0与1:initial:a=0,b=1;
a=1,b=0;
a=1,b=0;
③1与0:initial:a=1,b=0;
a=1,b=1;
a=0,b=1;
④1与1:initial:a=1,b=1;
a=0,b=1;
a=1,b=1;
1.在使用vs2013进行编程时,出现errorc1853的错误,这是因为c和c++用不同的预编译头文件
解决办法:在进行项目创建的时候点击下一步,将precompiled headers 选项勾去,运行时使用Ctrl+f5.
2.出现运行窗口闪退
解决办法:右键点击源文件选择properties--linker--system--subsystem改为Console (/SUBSYSTEM:CONSOLE)
引用
这是c到c++的拓展
类型名&变量名=另一个变量名
1.引用就像一个人照镜子,对任意一个变量进行操作,另一个变量也进行变化 ,但还是不能通过常引用来修改引用内容
int n =100;
const int &r=n;
r=200//编译出错
n=300//成功
T&类型的引用或T类型的变量可以初始化const T&类型的引用,反之不可以,除非强制类型转换
2.在引用时一定要初始化成一个变量,之后此变量不会再引用别的变量了,但是别的变量可以引用它。
3.不能引用常亮和表达式
4.交换两个变量位置
①c中交换两个变量位置
void swap(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
//printf("%d%d", a, b);
}
void main(){
int n1 = 1, n2 = 2;
swap(n1, n2);
printf("%d%d", n1, n2);
}
只会在函数中交换两个变量的值,主函数中并不能交换两个变量的位置
②c中使用指针
void swap1(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main(){
int n1 = 1, n2 = 2;
swap1(&n1, &n2);
printf("%d%d", n1, n2);
}
③使用引用交换变量的位置
void swap2(int &a, int &b){
int temp;
temp = a;
a = b;
b = temp;
//printf("%d%d", a, b);
}