心得体会:
1.int long short 这三种类型一般默认为有符号型,char大部分被默认为有符号型。若要区别有符号和无符号可以加入unsigned signed。负数被输入,不只是简单的去掉符号,要进行转换成补码来进行判断。
2.在计算机中,只执行加法。16进制存储,两个数字为一个字节,不足的在前面补0。
3.计算机中存储分为大小端,大端:高位存低地址,低位存高地址。小端:低位存低地址,高位存高地址。
4.模拟实现strcpy函数代码;
/实现strcpy
//char my_strcpy(char pa, const char* pb)
//{
// char* pc = pa;
// assert(pa && pb);//这个和if差不多,条件为假就中止
//
// while(*pa++ = *pb++)// \0的啊斯卡码是0
// {
// ;
// }
// return pc;
//
//}
//
//int main()
//{
// char arr1[] = { 0 };
// char arr2[] = “hello azhe”;
// my_strcpy(arr1, arr2);
// printf("%s\n", my_strcpy(arr1, arr2));//返回的是目标空间的起始地址,数组名等于 数组的起始地址,所以不用反解。
// return 0;
//}
5.模拟实现strlen函数代码;
//模拟实现lenth
//int my_lenth(char const* p)
//{
// assert(p != NULL);
// const char* pa = p;
// while (*pa != ‘\0’)//为什么这里不能用while (*pa++ != ‘\0’),因为这样的话会导致pa指向\0后面的一个单元,会多数一位。
// {
// pa++;
// }
// return pa - p;
//}
//
//int main()
//{
// char arr[] = “abcdef”;
// int len = my_lenth(arr);
// printf("%d\n", len);
// return 0;
//}
6.//判读自己的电脑是小端还是大端
//#include <stdio.h>
//#include <stdio.h>
//int check_sys()
//{
// int i = 1;//先给内存中,存一个1.
// return ((char)&i);//因为只看第一个字节,所以强制类型转换成char类型的指针,然后在返回,进行判断。
//}
//int main()
//{
// int ret = check_sys();
// if (ret == 1)
// {
// printf(“小端\n”);
// }
// else
// {
// printf(“大端\n”);
// }
// return 0;
//}
7.杨辉三角,凶手问题,走台阶问题,排名次问题。都是要反复看的代码。