![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++面试复习
马大哈先生
新人一枚,请大家多多关照!
展开
-
C语言中以字符串形式输出枚举变量
每个枚举常量对应一个整形数字,很多时候可以像整形一样使用,这个大家都知道;但是如果要求打印枚举变量名的字符串,办法也有很多,查看网上方法几乎都需要转换,要么用数组,下面要说的是一种可以算是直接打印的新方法;#include <stdio.h>#define ENUM_CHIP_TYPE_CASE(x) case x: return(#x);enum cvmx_c...转载 2020-04-24 11:00:44 · 2175 阅读 · 0 评论 -
C/C++练习(一)——将句子倒序输出:输入“how are you"倒序输出"you are how"
//输入“how are you"倒序输出"you are how"#include <iostream>#include <string>using namespace std;int main(){ string str; //字符串 int ptr[100]; while (getline(cin, str)) {...原创 2020-02-19 09:59:00 · 2646 阅读 · 0 评论 -
面试复习(六)——C/C++关键字:C++中异常的处理方法以及使用了哪些关键字
C++异常处理使用的关键字有:try、catch、throw。C++中的异常处理机制只能处理由throw捕获的异常,没有捕获的将被忽略。使用try{ throw...}catch(...'type){ cout << 'Err_infomation!" << endl;} 语句来捕获异常,把可能发生异常的代码放在try{}...原创 2019-08-10 17:19:16 · 514 阅读 · 0 评论 -
写C++代码的小技巧(一)——getline()
一、getline() 尽量使用全局函数string类中的getline(),其读入的第二个参数为string类型,不设置默认是遇到回车停止读入操作 cin.getline是针对数组字符串的,以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止#include <string>int ma...原创 2019-08-07 10:52:45 · 314 阅读 · 0 评论 -
面试复习(一)——C/C++关键字:static(静态)变量有什么作用
数据成员可以分为静态变量、非静态变量两种。静态成员:静态类中的成员加入static修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态成员,因为静态成员存在于内存,所以非静态成员可以直接访问类中的静态成员。非静态成员:所以没有加static的成员都是非静态成员,当类被实例化后,可以通过实例化的类名...转载 2019-08-06 20:30:24 · 1734 阅读 · 0 评论 -
面试复习(五)——C/C++关键字:new/delete与malloc/free的区别
一、为什么需要动态内存分配? 在C++程序中,所有内存需求都是在程序执行之前通过定义所需的变量来确定的。 但是可能存在程序的内存需求只能在运行时确定的情况。 例如,当需要的内存取决于用户输入。 在这些情况下,程序需要动态分配内存,C++语言将运算符new和delete合成在一起【2】。 在C++中申请动态内存与释放动态内存,可以使用new/delete或者malloc/...原创 2019-08-08 16:10:46 · 313 阅读 · 0 评论 -
面试复习(四)——C/C++关键字:前置运算和后置运算的区别
一、以++操作为例,对于变量a,++a表示取a的地址,增加它的内容,然后把值存放到寄存器中; a++表示取a的地址,把值存放到寄存器中,然后增加内存中a的值。当涉及表达式计算时,这两种方式的区分如下:++后置:先将其值返回,再增加1;++前置:先将值增加1,再返回其值。#include <iostream>using namespace std;int m...原创 2019-08-08 14:23:35 · 605 阅读 · 0 评论 -
面试复习(三)——C/C++关键字:*p++与(*p)++等价吗?
因为优先级顺序的问题,*p++与(*p)++不等价。*p++先完成取值操作,然后对指针地址执行++操作; (*p)++首先执行取值操作,然后对该值进行++运算。C语言操作符优先级由高到低的排序主要遵循如下规则:#include <iostream>using namespace std;int main(){ int a[4] = { 1, 2, 3, 4...原创 2019-08-08 11:25:59 · 371 阅读 · 0 评论 -
面试复习(二)——C/C++关键字:switch语句中的case结尾是否必须添加break语句
一般必须在case语句结尾添加break语句。因为一旦通过switch语句确定了入口点,从入口点的case语句开始一直往下执行,除非遇到关键字break,否则会继续执行满足这个case之后的其他case语句,直到switch结束或者遇到break为止。如果在switch中省略了break语句,那么匹配的case值后面的所有情况(包括default情况)都会被执行。比如:#in...原创 2019-08-08 11:17:12 · 3196 阅读 · 1 评论