2021.5.6牛客刷题小结


前言

提示:以下是本篇文章正文内容,下面案例可供参考


C++

1、引号

"

2、指针和整实型

指针变量是用来指示一个内存地址的变量,因此只能将地址赋给指针变量,而不能是整数或浮点数 整数通过强制类型转换后可赋值给指针变量,
要注意转换后的类型要和指针指向的类型一致,并且这个整数的位长不能超过指针的位长

3、strcpy

char s[ ]="abcdefgh",*p =s; 
p += 3; 
printf("%d\n",strlen
(strcpy(p,"ABCD"))); 

p +=3;后指向的内容为defgh,执行strcpy后p的内容为ABCD\0
strcpy(p,"ABCD”)的功能是将字符串”ABCD”复制到指针变量p所指向的内存

单元中,其返回值是指针p所指内存单元的地址,然后计算p所指字符串的长度,显然是4。

4、memmove()

memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, size_t num); memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝N个字节到目标dst所指的内存地址的起始位置中。 memmove函数的功能同memcpy基本一致,但是当src区域和dst内存区域重叠时,memcpy可能会出现错误,而memmove能正确进行拷贝。

5、fork()和printf()

printf()没有换行符会放在缓冲区等程序结束后由系统处理输出。如果fork()前父进程输出缓冲区内存在未输出对象,那么子进程会复制父进程的缓冲区。

6、char溢出后和int的计算

执行如下程序代码
char chr = 127;
int sum = 200;
chr += 1;
sum += chr;
后,sum的值是   ; (     )

对于c/c++语言来说:char是一个字节,第一位是符号位,chr在计算机中是补码形式存储,而正数的补码就是原码本身:0111 1111,chr+=1后,chr变为1000 0000,因为char类型的数据范围为0到127,实际上已经溢出了。
sum在计算机中存储形式是(假设当前编译器int为16位):0000 0000 1100 1000,接着算sum += chr,sum是16位的而chr是8位的,chr会自动转成16位的,按照按符号位扩展规则,前面补1111 1111,chr变成了1111 1111 1000 0000,于是在计算机内部是0000 0000 1100 1000和1111 1111 1000 0000相加,得到(1)0000 0000 0100 1000 ,第一个1舍去,1001000是72。

操作系统

1、LRU

在这里插入图片描述


总结

继续加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值