C++学习笔记01-语法基础(问题-解答自查版)

前言

以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点

Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。

本文对读者可以用作自查,答案在后面,需要时自行对照。

--

问题集

Q1:结构化编程?C++的核心:OOP和泛型编程?

Q2:关于头文件命名,#include 合规,#include 语法没有错误,为什么却编译报错?

Q3:using namespace std; 中,using语法是属于编译指令吗?namespace的作用域的设计目的?

Q4:cout << 中的 “<<” 运算符叫什么名字?stream/流 是什么?控制符(manipulator)是什么?

Q5:const在C和C++的区别?const安全的底层原理?

Q6:在函数运行中定义变量合适吗?推荐做法是什么?a的值会随着循环每次变化吗?eg :

int main() {
    while(1) {
        int a = 0; print(a++);   // 这里的 定义int a变量是合理的吗?
    }
}

Q7:C风格中,原来需要预处理的 xxx.h 头文件在C++的新方式?

Q8:int在不同系统上可能有不同的位数表现(16bits/32bits),那么有办法设置int位宽吗?

Q9:以下两条语句的含义?

        int a{5};

        int b = {5};

Q10:unsigned类型有浮点数吗?

Q11:如果提前知道变量可能表示的int值大于16位,则推荐使用 long 而不是 int(大于20e则使用 long long),why?

Q12:伪代码 int a + bool b 的执行结果如何?其背后原理?进一步地,两个float数 f1+f2 内部运算是怎么样的?

Q13:语句 short i;  cout << int(i); 的含义是什么?为什么要这样设计?这里的int()是一个函数吗?

Q14:关于auto关键字原初的设计意图?

Q15:char a[n] 和 string的本质区别?

Q16:关于连续使用cin,我们已知的问题是第一个cin随着回车会导致遗留\0到下一个cin被读到

标准的解决方式是什么?

Q17:输出结果?

cout << R"(Jim "King" Tutt uses "\n" instead of endl.)" <<'\n';

Q18:C++允许在声明结构变量时省略关键字struct?

Q19:bit field 是什么?(也叫位域,From 小盖伦er)

Q21:关于枚举型变量对象band,下面几个表达式的正确性?(思考:enum-整型之间的提升)

Q22:指针的危险?(与之关联:Q27)

Q23:指针解引用之前的金科玉律?(这个学过c都会,跟Q22一样看看即可)

Q24:动态数组?动态联编?如何创建?如何释放?

Q25:对于C++, int *psome = new int[x]; 这个语句中,sizeof(psome)代表什么?sizeof(*psome)又代表什么?

Q26:p是一个指针,那么 p = p+1 之后,p指向哪?(以C++11标准-巩固)

Q27:假设有一个字符串 str1,那么下面的表达式语法合理吗?

        str1 [-1]

        *(str1 - 1)

Q28:除了vector和 xx[ ],还有什么方式可以表示数组?

Q29:关于vector和array,vector的底层实现是什么?

Q30:二维数组在内存的空间地址是连续的么?

Q31:关于RAII,说说RAII的简单理念是什么?

Q32:比起 cin >> sr.arr 说说这里为什么用 cin.getline() ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值