提纲:(直接以面试官口吻进行题目设定,之后的帖子将不再重复这句话)
👉八股
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其实就是
```