4 静水流深_

尚未进行身份认证

我要认证

嵌入式开发、学习交流

等级
TA的排名 2w+

C常用头文件

文章目录1、stdio.h2、string.h1、stdio.h序号函数功能1puts(str)输出字符串2gets(str)输入字符串(回车间隔)2、string.h序号函数功能1strcpy(s1,s2)s2 ==> s12strcat(s1,s2)s1+s2 ==> s13strcmp(s1,s2)(1)若 s1 == s2, 函数值为 0(2)若 s1 > s2, 函数值 >0

2020-05-31 23:38:21

二分法查找

二分法查找(非递归实现)#include <stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int low,high,mid,n=10,x; printf("Input a integer:"); scanf("%d",&x); // 要查找的数据 low=0; high=n-1; while(low<=high) // { mid=(low+high)/2; if(x==a[mid]

2020-05-31 22:41:07

变量的内存分配情况

C语言有全局变量(Global)、本地变量(Local)、静态变量(Static)和寄存器变量(Register)。每种变量都有不同的分配方式。#include<stdio.h>int g1 = 0, g2 = 0, g3 = 0;int main(){ static int s1 = 0, s2 = 0, s3 = 0; int v1 = 0, v2 = 0, v3 = 0; printf("&g1 = 0x08%X \n", &g1); printf("&a

2020-05-29 23:55:21

static,const

文章目录1、static全局变量与普通全局变量有什么区别?2、static局部变量与普通局部变量有什么区别?3、static函数与普通函数有什么区别?参考博文:static全局变量与普通的全局变量1、static全局变量与普通全局变量有什么区别?static全局变量只初使化一次,防止在其他文件单元中被引用2、static局部变量与普通局部变量有什么区别?static局部变量只被初始化一次,下一次依据上一次结果值3、static函数与普通函数有什么区别?static函数在内存中只有一份,

2020-05-18 23:06:16

操作系统 专题(死锁)

文章目录1、什么情况下会出现 死锁?1、什么情况下会出现 死锁?死锁的发生必须具备以下四个必要条件:(1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。(2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。(3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完

2020-05-14 23:43:33

C++ 专题

文章目录1、在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"声明?1、在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"声明?C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为void foo(int x, int y)。该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号extern "C"解决名字匹配问题。

2020-05-14 23:23:31

数据结构(链表,栈,堆,队列,树,图)

1、栈和堆

2020-05-11 00:27:41

位操作

1、一个十进制整数转换成二进制含多少个1#include <iostream>using namespace std;int func(int x){ int count =0; while(x) { count ++; x = x & (x -1); } return count;}int main(){ cout << "count=" << func(9999) << endl; //count=8 retur

2020-05-11 00:11:39

指针 专题

文章目录1、如何避免野指针2、什么是大小端模式?请用C语言写出判断函数。3、指针的强制类型转换1、如何避免野指针将指针初始化为NULL,用完后也将其赋值为NULL。2、什么是大小端模式?请用C语言写出判断函数。大端模式:内存低地址存放 数据的高字节;小端模式:内存低地址存放 数据的低字节。比如:将一个32位的整数0x12345678存放到一个整型变量(int)中,大端:12-34-56-78; 小端:78-56-34-12#include <stdio.h>void mai

2020-05-10 22:48:14

预处理 专题(#include,#define)

参考博客:#include ""和#include <>的区别1、头文件中的#ifndef/#define/#endif作用?#ifndef和#endif是一对条件编译语句,一般是用来防止头文件被重复包含,提高编译效率的。2、#include <>和#include ""的区别。序号类别描述1#include <>引用编译器的类库路径里面的头文件2#include ""引用程序目录的相对路径中的头文件,如果没有,引用编译器的类库

2020-05-10 21:41:57

递归 专题

1、用一个表达式,判断一个数X是否是2的N次方(2,4,8, …),不可用循环语句(程序员面试宝典第4版P55)#include <iostream>using namespace std;int log2(int value) //递归判断一个数是2的多少次方{ if (value == 1) return 0; else return 1 + log2(value >> 1);}int main(){ int num; cout <<

2020-05-10 19:00:30

全局变量 专题

1、局部变量和全局变量 能否重名?能,局部会屏蔽 全局变量。在局部范围使用全局变量,需要在变量前加::,比如::global_n。2、如何引用一个已经定义过的全局变量?(1)可以用#include引用头文件的方式;(2)可以用extern关键字的方式,来引用定义过的全局变量。3、全局变量可不可以定义在可被多个.c文件包含的头文件中?为什么?不可以,这样做会引起全局变量的重复定义,编译报错。...

2020-05-10 18:43:19

排序算法专题:quickSort,choose,bubble

1、快速排序(升序)void quickSort(int sort[], int m, int n){ int k, t, i, j; if (m < n) { i = m; j = n + 1; k = sort[m]; while (i < j) { for (i = i + 1; i < n; i++) if (sort[i] >= k) break; for (j = j - 1; j > m; j--)

2020-05-10 18:35:08

不使用库函数,实现 strcpy,strcat,strcmp

strcpy原型:char* strcpy(char* des,const char* source){ char* r = des; assert((des != NULL) && (source != NULL)); while((*r++ = *source++)!='\0'); return des;}自行实现:char* myStrcpy(char* dest, char* src){ char* r = dest; if (dest == NULL ||

2020-05-10 15:53:20

内存中的数据对齐

题目1:#include <iostream>using namespace std;class B{ bool a1; int a2; bool a3;};class C{ int a1; bool a2; bool a3;};int main(){ cout << sizeof(B) << endl; //12 cout << sizeof(C) << endl; //8}

2020-05-10 12:32:32

error C4996: 'scanf': This function or variable may be unsafe.Visual Studio系列编译器使用scanf函数报错

VS2017写C代码出现:error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.的错误,在.cpp文件的顶部添加 #define _CRT_SECURE_NO_WARNINGS 10 即可解决问题。...

2020-05-10 00:14:54

TCP/IP 各层的 数据格式

传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用socket API编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示TCP/TP数据包封装:不同的协议层对...

2020-05-06 00:37:54

常见网络知识面试题

1.TCP如何建立链接2.TCP如何通信3.TCP如何关闭链接4.什么是滑动窗口5.什么是半关闭6.局域网内两台机器如何利用tcp/ip通信?7.internet上两台主机如何进行通信8.如何在internet上识别唯一一个进程答:通过“IP地址+端口号”来区 分不同的服务的9.为什么说tcp是可靠的链接,udp不可靠10.路由器和交换机的区别11.点到点,端到端...

2020-05-05 17:41:46

进程与线程:线程

2.2 线程在传统操作系统中 ,每个进程有一个地址空间和一个控制线程 。事实上,这几乎就是进程的定义 。 不过,经常存在在同一个地址空间中准并行运行多个控制线程的情形 ,这些钱程就像(差不多) 分离的 进程 〈共享地址空间除外)。在下面各节中,我们将讨论这些情形及其实现 。2.2.1 线程的使用(Thread Usage)为什么人们需要在一个进程中再有一类进程 ?有若干理由说明产生这些迷你...

2020-05-03 18:10:54

进程与线程:进程

从本章开始,我们将深入考察操作系统 是如何设计和构造的。操作系统中最核心的概念是进程 :这是对正在运行程序的一个抽象。操作系统的其他所有内容都是围绕着进程的概念展开的,所以,让操作 系统的设计者(及学生)尽快井透彻地理解进程是非常重要的 。进程是操作系统提供的最古老的也是最重要的抽象概念之一 。即使可以使用的CPU只有一个 , 但它们也具有支持( 伪)并发操作的能力 ,它们将一个单独的CPU变换...

2020-05-03 16:25:27

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。