1.c++中所有变量可以在使用前定义。

for(int i = 0 ; i<5 ; i++)
{
   for(int j = 0 ; j<5 ; j++)
   {
       do_sth;
    }      
}

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2. c++ 中可以获得 register 变量的地址。

    register 关键字是请求编译器将局部变量设置为寄存器变量。

 (如果有代码要取 register 变量的地址,编译器将变量的 register 属性变无效)

 

3. c++ 中不可以定义两个同名的全局变量。

 

4. c++ 中 struct 定义了一种全新的类型

struct student 
{
   char* name;
   int     age;    
};

 

 5. c++中所有标识符必须显示的声明,不支持默认类型。

  int fun();  //error

 

6. const 关键字

       1. 在c语言中 const 为变量

  const 高数编译器其修饰的变量在编译期只可做左值。编译期有空,运行期无用。

  const 修饰的全局变量在只读存储区分配空间,修饰的局部变量在栈上分配空间。

  只有枚举enum定义的标识符才是常量。

int main(void)
{
  const int a=0;
  int *p = (int *)&a;
  *p = 5;
printf("%d",a);// c++ 0
           // c 5 }

      2. 在c++中 const 为真正地常量

  编译器在于丹const 修饰的变量时直接将其对应的符号表中放入常量值,在其后遇到该常量时将符号表的常量值取出并替换成常量值。

  例外: 在 & extern 操作符和关键字修饰时为常量分配存储空间,但不会使用储存空间的值(兼容C语言)。

 

7. 布尔类型

  bool 类型用一个字节存储,取值 ture / false (C++关键字)

  ture 编译器内部用1表示,表示真。

  false编译器内部用0表示,表示非真值。

  布尔类型支持数学运算,运算结果将被转换(将非0值转化为ture,将0值转化为false)

bool a=0;
printf("%d",a);   // 0
a++;
printf("%d",a);   // 1
a-=3;
printf("%d",a);   // 1

 

8. 三目运算符

int a = 1, b = 2;
(a < b) ? a : b = 3;

(a < b) ? a : 2 = 3; //error

   c: 三目运算符返回表达式中 a 变量的值

   c++:三目运算符返回表达式中 a 变量本身,只有a,b为变量才可以将整个表达式作为左值。

   当三目操作符可能返回中都是变量时,返回的是变量的引用。

   当三目操作符可能返回中有常量时,返回的是值。

int a = 1,b = 2;
(a < b)? a : b = 3;  // 返回a或b的引用
(a < b)? 1 : b = 3;  // 返回1或b的值    error

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄