- 博客(18)
- 收藏
- 关注
原创 C语言基础(一)
C语言:是面向过程的语言,将一个问题分成多个步骤,逐一解决,最后输出最终结果。缺点:软件可重用性差;可维护性差。C++:面向对象的语言,将具有相同特性或者功能的现实问题抽象为一个类,通过继承、实现、组合的方式对现实事物或问题进行解释。优点:能够适应用户需求的变化;采用面向过程的优势从而避开其劣势C语言到C++的升级:1 C语言要求所有变量都必须在作用域开始的位置进行定义,而C++可以在需要的时候进行定义:2 "register"-----请求...
2022-11-24 16:02:46
47
原创 堆与栈基础
堆与栈的区别:1. 申请堆的内存空间,需要程序员自己动态申请、释放。申请栈的内存空间是由系统自动分配、自动释放2. 栈的数据是由高地址向低地址存储,是一段连续的内存空间。 堆的数据存储是由低地址向高地址i存储的,是一段非连续的链表空间。3.栈的内存大小由系统预先规定好的,堆的内存大小受限于系统中有效的虚拟空间。4.栈的数据分配速度快,但不受程序员控制。 堆的数据空间分配速度满,容易产生空间碎片,用起来方便。栈的作用:1.保存程序中的临时变量:函数参数、局部变量、函数...
2022-11-24 16:02:07
82
原创 sizeof()
2.答案:Bsizeof("ab") = 3 ,charstr[sizeof("ab")] = char str[ 3] ; sizeof( str ) = 3*sizeof(char) = 33.答案:C解析: sizeof(a) = 10*sizeof(char) = 10 b为指针,在64位系统中指针占用8字节4.答案: C解析:char占用1字节,与它的赋什么值没有关系...
2021-09-21 21:04:43
84
原创 2021-09-21
volatilal关键字:变量由于未知原因,保存变量的地址数据发生改变,而由于编译器优化的原因,直接读取暂时保存到寄存器中的数据。volatial关键字就是告诉编译器保存的变量可能会发生变化,因此每次使用该变量时,直接从存储变量的地址处读取数据。上述四条指令,由于编译器优化的问题,只执行最后一条指令,其余三条会被忽略,加上volatial关键字后,逐条执行,每条均产生机器语言。常用的地方:多个线程共享一个变量static关键字:static修饰的局部变量,即使函数执行结束后...
2021-09-21 21:04:28
74
原创 指针问题—
1. 数组指针与指针数组数组指针:指向数组的指针,指针指向一个数组,int (*p) [8] 声明了一个指针,指针指向一个有8个 int 类型的数组。输出结果为: 5声明了一个数组指针 "p" ,数组指针指向一个有4个int 类型的数组,起始 “p”指向数组 "b" 的首地址,"(++p)"相当于将 "p "指向的数据向后移动 4个int 类型空间。printf ("%d\n", *(*p ++) ) :输出 2指针数组:指针数组实际还...
2021-09-16 16:52:05
289
原创 C++面试整理(1)
new 和 malloc 的区别:1. malloc 是C语言申请内存的方式,与free()相对应,是C/C++标准库的函数。new/delete 是C++分配内存和释放的关键字,不需要头文件,需要编译器支持2. malloc 申请的内存返回值类型为 "void *" 类型,因此在使用时要将其强制转化为需要的类型,且需要指定好要申请内存的大小; new 一般返回对象类型指针,其类型与对象严格匹配,编译器会自动计算内存的大小。3.new 内存分配失败时,会抛出 bad_alloc 异...
2021-09-11 22:01:45
100
原创 进程与线程
什么是进程、线程?进程和线程之间的区别?进程是资源分配的基本单位;线程是CPU调度与分配的基本单位。进程 = PCB (进程控制块) +数据块 +代码块;进程是无法运行程序的,因此在创建进程前,要先创建主线程,并为其分配相应的资源,在主线程中实现各种程序功能。当我们打开或运行一段程序时,系统会自动创建一个进程,并会为其分配内存空间和资源。然后将其分配至就绪队列里,当CPU为其分配处理机后,便开始运行。进程内部既可以创建 “子进程”,也可以创建 “子线程”。“子线程”是独立于进程之...
2021-09-11 21:11:10
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人