- 博客(7)
- 收藏
- 关注
原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。
哇说这真的这个题还是有点难度的!!!我们把大体的解题方式分为3步第一步就是找出他们的“特殊值”先补充一下就是对于^异或操作符是具有交换行和结合性的。所以无论是什么数,或者再不同的地方只要异或在一起就会变成0。比如4545。将·这几个数异或起来的出来的结果就是零。根据这个特性我们将所有的数异或起来^便可以得到特殊值“特殊值”因为其他的数字都是2的倍数所以异或起来都是0,但是特殊值是这个数组中唯一2个不同的值异或起来的所以叫它为特殊值第二步找出“特殊值”中最左边的1这一步
2022-04-06 17:18:35
492
原创 动态内存函数
#include<stdib.h>mallocvoid*malloc(size_t)需要的类型指针=(需要的类型进行强转)malloc(需要的字节数)如果开辟不成功会返回一个nullmalloc开辟的其实不是一个数组所以在开始直接指向这段地址的这个指针是不能进行移动的所以可以分为可动指针和不可动指针free释放函数void free(void* memblock)释放掉malloc申请的地址。这时候就需要传入那个不可动指针。并.
2022-03-29 15:34:32
334
原创 c语言结构体的 数据对齐
任何编译器都会进行数据对齐。第一个成员总是在偏移量为零的地方第二其他成员需要对某个数进行对齐。(默认vs是8)要对齐到对齐数的正数倍处其实可以理解为(取较小值)第三结构体的总大小是最大对齐数的倍数第四如果是嵌套结构体便它的(对齐数/被嵌套结构体最大对齐数)为什么要进行数据对齐有平台原因某些平台不能随意的读取数据,只能在特定的地方读取特定的数据。有性能的原因在访问未对齐的数据的时候处理器需要两次访问,对齐数据的内存访问只需要一次。结构体数据进行内存对齐是哪空间来..
2022-03-25 10:31:59
981
原创 c语言常用的函数以及用法(复习篇)
memcpy这种函数是内存拷贝并且是按字节拷贝memcpy(目标地址,数据地址,需要拷贝数据大小)memmove是可以重叠地址拷贝的memmove(目标地址,数据地址,需要拷贝数据大小)memcmp根据数据比较大小是以字节为单位进行比较的strlen求数组长需要/0strcmp比较数组大小需要/0strcpy拷贝数组需要/0strcat将字符串进行尾部衔接strstr这个是查找在字符串中是否有个另一个子串strtok是将字符串分割符
2022-03-23 17:54:25
890
原创 对于float型在内存中的存储样态
首先先看一下这段程序#include<stdio.h>int main() { int n = 9; float* pFloat = (float*) & n; printf("%d\n", n); printf("%f\n", *pFloat); *pFloat = 9.0; printf("%d\n", n); printf("%f\n", *pFloat); return 0;}大家可以先分析一些这段程序这段程序。我开始想到的是第一次打印的应该
2022-03-02 19:06:51
312
2
原创 简单的银行系统(java)
啊。。。开宗明义这个程序我得承认这个是一个·半程品但是拿来糊弄一下老师或者有心人想要再加工也是可以的。天地人民银行需要改进的地方封装这是一个单链表上面我都写好了那些变量的名字;这个其实没什么好说的封装其实特别简单但是当时我一个人时间有很紧(就是懒 啊对对对!!!!!)然后整体方法可以被封装为3个但是我没有(欸嘿嘿!!真的一个人时间有限 如果给使用者带来了麻烦你可以别用)只需要吧单链表操作的head传过去 然后吧用户节点传过去即可。很简单!!!最后
2022-01-18 17:43:29
530
4
原创 对于c语言的学习
其实对于第一次学习c语言的人看到这篇文章应该会更好c语言第一次接触大家都是在大一的时候,其实很多时候大家都不会意识到c的重要性和大一的时候到底需要做什么。c在大一是大家唯一接触的机器语言。其实更应该需要重视,需要好好学习刷题。其实很多平台都可以提供很好的c的视频。而且如果c真的只是学到了过的程度其实是完全不够的最后希望好好学习天天向上。...
2022-01-10 21:09:15
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人