C++常见问题系列(一)——基础问题

一 三种基本数据类型 整数型,浮点型和void型;其中表示整数、字符和布尔值的算术类型合称为整形。 二 操作符 操作符说明了表达式的主要目的,并且计算返回结果。按照功能区分操作有算术操作符、关系操作符、逻辑操作符、条件操作符等,不同优先级决定了表达式的运算顺序。 三 自增自减

int i=0,j;
j = ++i;  //前自增操作,结果j=1,i=1 (优先级大于=,先自加)
j = i++;  //后自增操作,结果j=1,i=2 (其优先级小于赋值运算符,则先执行=,表达式的值不会发生改变)

注意:变量的自增自减是修改变量的值,指针的自增自减是修改指针的指向地址。

四 变量的声明、定义与引用 声明的主要目的是表明变量的类型和名称,定义的主要目的是为变量分配存储空间,引用主要用作函数的形式参数。

extern int a; //extern关键字声明变量名但不定义
int a = 100;
int &reta = a;

五 变量的四种存储类型 自动类型,寄存器类型,外部类型(extern必须是全局变量),静态类型(static,在程序运行过程中静态变量始终占用一个存储空间)

六 关于const const引用是指向const对象的引用,const引用必须被定义为const类型。

const int a = 10;
const int &reta = a;
int &reta = a; //错误的,引用必须定义const类型

七 break与continue区别 continue语句只能出现在循环语句中,而break语句可出现在switch语句,continue语句不会退出循环,只会终止当次执行循环体并且进入下一次循环体的执行,break语句会退出循环语句。

八 递归 一个过程或函数直接或间接调用自己本身,这种过程或函数叫递归过程或递归函数。 例子:汉诺塔问题

void Move(int n,char i,char j)
{
    cout<<"send"<<n<<"from"<<i<<"to"<<j<<endl;
}
void Hannoi(int n,char a,char b,char c)
{
    if (n ==1)
    {
        Move(1,a,c)
    }
    else
    {
        Hannoi(n-1,a,c,b);
        Move(n,a,c);
        Hannoi(n-1,b,a,c);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网技术栈

JVM面试考点—— 值==问题(常量池)

java中基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean。

533
来自专栏测试开发架构之路

C++之迭代器

迭代器的概念 迭代器是用来访问string对象或vector对象的元素的,类似于下标运算和指针。 其对象是容器中的元素或string对象中的字符; 使用迭代器可...

2855
来自专栏JavaNew

Java集合类:AbstractCollection源码解析

983
来自专栏吴伟祥

详解equals()方法和hashCode()方法

Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和ha...

612
来自专栏Python小屋

Python中的循环结构

Python主要有for循环和while循环两种形式的循环结构,多个循环可以嵌套使用,并且还经常和选择结构嵌套使用。while循环一般用于循环次数难以提前确定的...

3326
来自专栏大闲人柴毛毛

稳扎稳打JavaScript(三)——创建对象的几种方式

有了前面两篇文章的基础后,我们来谈一谈在JS中创建对象的几种方式。 建议大家先预习下先前的两篇博客: 稳扎稳打JavaScript(一)——作用域链 ...

4174
来自专栏待你如初见

Day12

1525
来自专栏Java大联盟

Java基础之数组

823
来自专栏学海无涯

19.Swift学习之构造函数与析构函数

713
来自专栏java一日一条

多线程同步中的门道

  在涉及到多线程的开发时,线程同步的考虑是不可缺少的,否则很可能会造成各种超出预料的错误结果。以自己的学习经历来说,对于刚开始接触线程同 步的人可能会感觉非常...

522

扫码关注云+社区