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);
    }
}

你可能感兴趣的:(C++)