提纲:(直接以面试官口吻进行题目设定,之后的帖子将不再重复这句话)

👉八股

1、请问你了解原码、反码和补码么,能不能简单概述一下?🔥🔥

2、简述一下全局变量和局部变量的区别?🔥🔥

3、C++有几种传值方式,之间的区别是什么?🔥🔥

4、请简述一下结构体和共用体的区别🔥🔥

5、主函数→int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?🔥🔥🔥⭐

6、简述一下数组和指针的区别🔥🔥🔥🔥🔥

7、简述数组指针与指针数组的区别🔥🔥🔥🔥🔥

8、指针函数与函数指针的区别🔥🔥🔥🔥🔥

9、请说说32/64位操作系统,某个数据类型字节数🔥🔥🔥🔥🔥⭐⭐
10、简单介绍一下sizeof

👉代码

👉任务打卡

===================================================

👉八股:

1、请问你了解原码、反码和补码么,能不能简单概述一下?🔥🔥

引入反码和补码是为了简化二进制数的减法运算;(作用)

在计算机内一个整数是通过二进制进行存储的,该二进制的最左边一位为符号位,0代表正数,1代表负数。

(1)原码(二进制):一个十进制数转化成的二进制数就是这个十进制数的原码。例如:8(十进制)的原码是0000 1000;

(2)反码:正数的反码与原码相同:如:8 原码为0000 1000,反码为0000 1000

负数为原码0变1,1变0,(符号位不变):如:-8 原码为1000 1000,反码为1111 0111

(3)补码:正数的补码与原码相同:如:10 原码为0000 1000,补码为0000 1000

负数的补码为反码加1:如:-8 反码为1111 0111,补码为1111 1000

口诀:正数都不变,反码0变1,补码反+1,引入为减法

注意:问你是什么不要只回答是什么,可以说一下作用之类的内容

2、简述一下全局变量和局部变量的区别?🔥🔥

(1)作用域不同:

  • 全局变量的作用域为整个程序,

  • 局部变量的作用域为当前函数或循环等

(2)内存存储方式不同:

  • 全局变量存储在静态全局区(data)中

  • 局部变量存储在栈区(stack)

(3)生命期不同:

  • 全局变量的生命期和主程序一样,随程序的销毁而销毁,

  • 局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

(4)使用方式不同:

  • 全局变量在声明后程序的各个部分都可以用到,

  • 局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。

3、C++有几种传值方式,之间的区别是什么?🔥🔥

有三种:值传递、引用传递、指针传递

(1)值传递:形参,改变不会改变实参

(2)引用传递 &:形参,改变会改变实际的值

(3)指针传递 *:指针地址不变的条件下,值改变会改变实际值

4、请简述一下结构体和共用体的区别🔥🔥

(1)struct和union都是由多个不同的数据类型成员组成。

  • struct的所有成员都存在;

  • 但在任何同一时刻, union中只存放了一个被选中的成员。

(2)在不考虑字节对齐的情况下

  • struct变量的总长度等于所有成员长度之和。

  • Union变量的长度等于最长的成员的长度。

(3)赋值

  • struct的不同成员赋值是互不影响的;

  • union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了。

5、主函数→int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?🔥🔥🔥

首先先明确一下这个 int main(int argc, char **argv)是什么东西,类比到C++其实就是

```

#include <iostream>

using namespace std;

int main(){ return 0;} //就是这个int main

```

argv参数是为了你写脚本或者用DOS命令行,往里进行传参用的,类比python其实就是

```