牛客 C++刷题day13

1:复合语句也被称为语句块,它至少要包含两条语句
但是你不妨在语句里写个空也行,只不过这种操作必然会被编译器过滤掉
2:死代码
死代码的英文是dead code。是指在程序操作过程中永远不可能被执行到的代码。
通过AQtime覆盖率的分析就可以发现所有的永远都不会执行到的代码,但是与程序无关的代码却不一定能够全部发现。
消除死代码(DCE)在某些情况下, 编译器可以判断出某些代码根本不影响输出,所以编译器会消除这些代码。也可以使用优化作用进行消除。
3:在一个表达式中
只要除法中没有浮点数或者没有显式转换,那么就会被约掉精度。
4:
write函数所在的头文件为 <unistd.h>
write有两种用法。一种是:
ssize_twrite(int handle, void *buf, int nbyte);
handle 是 文件描述符
buf是指定的缓冲区,即 指针,指向一段内存单元;
nbyte是要写入文件指定的字节数;返回值:写入文档的字节数(成功);-1(出错)
write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.
另一种是:write(const char* str,int n)
str是 字符指针或字符 数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。
write("string",strlen("string");表示输出 字符串常量
5:
请问下面的程序一共输出多少个“-”?
1
2
3
4
5
6
7
8
9
int main(void)
{
    int i;
    for (i = 0; i < 2; i++) { 
        fork(); 
        printf("-"); 
    
    return 0

 

fork类型的题目

一共调用了6次printf,但是会输出8个-。因为父进程的输出缓冲也会被子进程复制

fork(); // i=0
    printf("-");    // buffer="-"
    fork(); // i=1
        printf("-");    // +1
    printf("-");
printf("-")
fork(); // i=1
    printf("-");    // +1
printf("-")
 
 

fork()系统调用的特性,

  • fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid),这是众为周知的。
 
 
  • 还有一个很重要的东西是,在fork()的调用处,整个父进程空间会原模原样地复制到子进程中,包括指令,变量值,程序调用栈,环境变量,缓冲区,等等。
5:
构造函数中变量的初始化顺序是按其定义的顺序,与初始化列表中的顺序无关。所以一定要注意。

转载于:https://www.cnblogs.com/Tonarinototoro/p/11524226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值