[CC++]Misc:碎碎念(1)

[CC++]Misc:碎碎念(1),第1张

1一些关键字
  • default,配合switch用的

  • extern,声明同一工程下的其他文件的全局变量,申明外部符号的

  • static

    //1、修饰局部,2到11,static使得局部变量a不销毁,生命周期变长(整个程序),**本质改变了变量的存储类型,使得它从栈区划到静态区**
    
    //2、修饰全局,缩小使用范围,下面的g_val将不得在同一工程的不同文件使用,即便用extern。


    **本质是将GV的外部链接属性修改为内部链接属性。


    ** //3、修饰函数。


    **本质跟修饰全局一致。


    如下面的test只能在其源文件内部使用。


    ** void test() { //int a =1;//输出10个2 //static int a =1;// a++ cout<

    从语言的角度上看,内存分为三个区,栈区(存放局部变量,函数参数),堆区(动态内存分配)以及静态区(全局变量,static修饰的)。


  • typedef,类型重命名

     typedef unsigned int u_int;
     int main()
     {
         u_int a =10;
         unsigned int b = 10;
    
         return 0;
     }
    
  • 注意:#define #include 不是关键字,这个叫做预处理指令

2一些字符
  • 移位 *** 作符:>>右移,<<左移。


    右移是存在两种,一种是逻辑右移(全部补0),一种是算数右移(补被舍弃的那个),可以用负数来测试,但是建议不要移动负数位,也不要写成<<-5,这种东西。


    int main()
    {
        int a =2;
        //向左移动一位,移动的是二进制位,a保持不变。


    //因为a是int,4B,即32b,所以int 2 = 00000000 00000000 00000000 00000010 //左移,把整个向左移动1位,最后位补0变成 //00000000 00000000 00000000 00000100 = 4 int b =a<<1; return 0; }

  • 位 *** 作符:&按位与, |按位或, ^按位异或(相同则0,相异则1),a^a=0,a^0=a。


    这个也是在二进制下 *** 作的,且必须只能在整数使用。


     int main()
     {
         //00000000 00000000 00000000 00000011
         int a =3;
         //00000000 00000000 00000000 00000101
         int b = 5;
         //00000000 00000000 00000000 00000001
         int c = a&b;
    
         //00000000 00000000 00000000 00000111 = 7
         int d = a|b
    
         //00000000 00000000 00000000 00000110 = 6
         int e = a^b;
         return 0;
     }
    
  • sizeof,这玩意儿不是函数,不是函数,不是函数,是 *** 作符,这意味着我们可以不需要sizeof(arr),直接用sizeof arr。


  • 逻辑运算符:&&和||是满足条件后便不再执行的,如&&,如果 其左边为假,则执行完左边后,右边不再执行;||如果左边为真,则执行完左边后,不再执行右边。


  • 逗号表达式

      int main()
      {
          int a=2,b=3,c=1;
          //从左向右依次计算,并赋予最后一个表达式的值给d
          int d = (a=b+2,c=a-4,b=c+2);
          return 0;
      }
    

    可以解决一些冗余的代码,不易读就是了

    a = get_val();
    count_val(a);
    while(a>0)
    {
        a = get_val();
        count_val(a);
        
    }
    //上面代码等价于
    while(a = get_val(),count_val(a),a>0)
    {
    
    }
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/634715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)