判断公因数 int retur(int x, int y) 交换数组元素 void tihuan(char arr1[], char arr2[], size_t sz)// 判断素数 void xunhuan(int x) 打印字符串 int main() 大小值排序 void retur(int x, int y,int z) | ||
一个书写有问题,但是结果主观正确 int main() | 二分查找法 int main() | |
这个书写有问题,但是最后的结果却是能实现我们的需求,但是里面的漏洞百出,所以平时编程时候一定要严谨,这样第一个if实际无意义,算法思路就是用最大的值减去要找的,然后一个一个减,直到数与要查找得数相等,再输出他的下标。 | 这个就是标准我们实现二分查找的思路,但是要注意好查找的数大于小于中间坐标时左右下标的控制。 |
查找数组中最大数 int main() | 交换数组值 int main() | |
windows采用小端法,地址从低位向高位开始排,从a的地址中看出,a只是助记符,实际上就是一块地址 | 数组在地址空间中的排列是连续的,每一个字节都是按照小端法排列,地址开辟空间自高向下开辟,数组使用自低向下使用 |
int reound(int a) | int reound(int a) | int jiecheng(int a) |
这一种思想是将每一位减1然后和他原位进行按位与,都为0的时候统计结束 例如8他的二进制为1000,减一后为0111;按位与后为0,执行一次,有一个一 | int四个字节32位,将这个数的二进制每个都和1进行按位与,按位与后后为1就能记录下这一位,统计加一。 | 递归实现阶乘 递归的两个条件1有一个结束条件,越来越接近这个结束条件 2,每一次递归实现都会越来越接近最后的值 |
内存越界
int zifu (char* a) | int jie(char* n) | |
一个内存越界的情况 | 而这个并没有越界 |
百度面试题,什么是大端小端,用代码实现大端小端的方法
int pan()
{
int a = 1;
// char* pd = (char*)&a;
//返回1小端。返回0大端
//return* pd;
return *(char*)&a;//嘴贱书写方式
}
int main()
{
int ret=pan();
if (ret == 1)//返回1是小端,返回0是大端,地址从左到右是从低向高位次排,低位有数就是从低向高,就是小端
printf("xiao");
else
printf("da");
}
5100
char类型的存储长度是分为unsigned char和signed char的unsigned长度是0-255,unsigned的长度是-128-127
char a = 128; | char a = -128; | 而实际的过程中假设a的值是-128,他在内存中是以补码形式存在的所以我们要将原码换成补码去解决问题-128原码为100000000 -127补码是10000001换成补码是11111111,这时候无法进1就变成了(1)10000000,实际上这个位就默认是128 |
运行下面这两段代码,会发现他们的值都是同一个 实际上128的原码补码反码相同是10000000,但是-128的源码是100000000,这是候他们的值就完美吻合了。 |
char a[1000]; 值为255,当执行完0到-128就会自动转换问0-127之间的值 | unsigned int i;//无符号数始终>=0 值执行完9-0之后死循环,因为unsigned始终大于等于0 | unsigned char i = 0; |