一.数据类型关于char
? ? ??C语言中的char是用于声明单个字符的关键字。同时我们也可以用于数组的申请,但是这并没有完。它也可以存储整形数据,例如
#include<stdio.h>
int main(void){
char a[0];
scanf("%d",&a[0]);
printf("%d",a[0]);
return 0;
}
这是因为int和char在本质上一样,不过编译器会进行转换。
但是 由于char是8byte,所以它的范围是【-128,127】
二.算法小技巧--
? ?1.交换数值的三种方法:
? ? ? 异或(^)? ? ? 这个操作符的意思是不同为1,其余为0(二进制);
? ? ? ? ? ? ? ? ? ? ? ? ? ? 例如:1001?和1011? —>0010
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?对于一个数连续异或两次值不变
#include<stdio.h>
int main(void){
int a=5,t=a;
a=a^a;
a=t^a;
printf("%d",a);
return 0;
}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?利用这个特性,就有以下操作:
int a=5,t=12;
a=a^t;
t=t^a;
a=a^t;
printf("%d %d",a,t);
? ? ? ? 数学运算? ? ?? ? 这就是利用? ? ?a=(a+b)-a;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b=(a+b)-b;?
? ? ? ? ? ? ? ? ? ? ? ? ?这就容易造成数据越界导致结果不准(不建议用)
? ? ? ?中间值交换? ? ?? ?这个可以说是最常用的算法了
int a=5,t=12,temp;
temp=a;
a=t;
t=temp;
printf("%d %d",a,t);
? 后续持续更新--
|