IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> c语言知识概念整理 -> 正文阅读

[系统运维]c语言知识概念整理

1.if ?not ?define一般有啥用
防止头文件重复定义

2.包头文件“”和<>有啥区别?
<>是直接在系统里面找
""是先在本地找,然后在系统里边找。
<>不可以替换"",""可以替换<>(是一种包含关系)
一个从库中搜取一个从当前目录下

3.staic和volatile
staic主要是改变函数和变量的作用域,volatile防止对寄存器进行优化使得每条指令都按照我们写的进行运行

4.左值和右值
左值可写,右值可读。通常,左值可以作为右值,但是右值不一定是左值

5.数组名和指针的区别
数组名对应的是一块内存的地址,指针是指向一块内存地址
数组名对应的内存地址不可以修改,指针指向的内存地址可以修改更灵活
数组存放的是数据内容,指针存储的是地址

6.do...while和while的区别
前一个是循环一遍再判断,后一个是判断后再循环

7.堆区和栈区的区别
(1)申请方式,栈的空间由操作系统自动分配,释放
?? ??? ??? ? 堆的空间由管理员手动分配和释放
(2)申请大小,堆的空间比较大,栈的可用空间比较小
(3)申请效率,栈申请速度比较慢,堆的申请速度比较快
8.两个Linux操作系统之间使用什么命令进行文件的传递?SCP

9.数组的下标可以为负数吗?
可以
c语言中数组的下标可以是负号,在代码运行前不会对数组是否下标越界、溢出等异常进行警告或处理,而C#,Java等语言会将下标为负等当做是异常来看待,所以不建议下标为负的写法

10.不能用sizeof()函数,如何判断操作系统是十六位还是三十二位
16位系统中,int变量的范围为-32768~32767,32767+1变为-32768,可以利用这个特性来判断

11.define和type define的区别
1.type define在编译时处理,具有类型检查的功能
define在预编译时展开,不会进行错误的检查,只是字符的替换
2.define没有作用域的限制,typedef 有自己的作用域
3.typedef定义指针的别名时,别名可以连续定义两个指针变量
define定义指针的别名时,使用这个别名连续定义两个指针变量会报错

12.指针和引用的区别
1.指针是实体,引用是别名
2.指针和引用的自增意义不同,指针是对地址自增,引用是对值自增
3.引用不能为空,指针可以为空
4.引用只能在定义时被初始化一次,之后不可变,指针可变
5.sizeof是,指针为4个字节,而引用为所指向对象的大小

13.函数指针和指针函数
函数指针:是指针,定义一个函数,就会分配存储空间,这段存储空间首地址就是函数的地址
而且函数名表示这个地址,既然是地址我们就可以定义一个指针变量来存放,这个指针就是函数指针
函数指针就是指向函数地址的指针
指针函数:是函数,只不过这个函数的返回值是一个地址的值

14.指针数组和数组指针有什么区别?
指针数组是数组,数组里面的元素是指针
数组指针表示的是指向数组的指针

15.内存碎片、泄露、溢出有什么区别?
内存碎片:内部碎片是由于采用固定的大小的内存分区,当一个进程不能完全使用分给它的固定内存区域就产生内存碎片
?? ??? ? ?外部碎片是由某些未分配的连续内存区域太小,不足以满足分配请求
内存泄漏:申请一段空间不去释放
内存溢出:程序在申请内存时,没有足够的内存空间供其使用

16.static,const,volatile,extern四个关键字的作用

static作用分四种,略

const为只读(多关注用法)5种用法修饰

volatile是防止寄存器优化使得每条指令都按照我们写的进行

Volatile的三种例子:
1.并行设备的硬件寄存器
2.一个中断服务程序中修改的供其它程序检测的变量
3.多线程应用中被几个任务共享的变量

extern
1.如果后面加“C”告诉编译器按着c的规则去翻译
2.声明函数或全局变量的作用范围的关键字,其声明的函数或全局变量可以在本模块或其它模块中使用
?

17.str copy ?str ncopy有什么区别
1.strcopy是依据'\0'作为结束的标志,如果空间不够,就有越界的风险
而strncpy会给定需要复制字符的个数n,定义好了size则不会越界
strcpy和memcpy主要有以下3方面的区别。
(1)、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
(2)、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
(3)、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

18.在Linux操作系统中怎么获得内存的大小?
cat /proc/meminfo | gerp meminfo

19.什么是同步?什么是异步?
同步有阻塞,必须一件一件事做,等前一件做完了才能做下一件事
异步调用者去调用即使没得到结果也可以继续执行后序操作

20.什么是阻塞?
A调用B,A一直等待B的回复,别的事情什么也不做

21.知道哪几种IO模型?
阻塞IO,非阻塞IO,多路复用IO,信号驱动IO,异步IO,

22.sizeof和strlen的区别

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:21:05  更:2021-09-01 12:21:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:31:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码