zoukankan      html  css  js  c++  java
  • C 小复习

    C语言 signed 与 unsigned:

      C语言中,当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型

    signed int a = -110;
    unsigned int b = 2;
    cout << a + b << endl;

      浮点数来说,浮点数(float,double)实际上都是有符号数,unsigned 和signed前缀不能加在float和double之上,当然就不存在有符号数根无符号数之间转化的问题了。




    有符号和无符号整数的主要区别是如何看待最高位:
      对于单字节二进制数01010110,无符号整数为86,有符号数也为86,因为最高位为0,所以二者间没有区别。
      对于二进制数10101100来说,无符号数为172,有符号数则为-84。二者区别很大。

        unsigned char a = -1;
        cout << (unsigned)a;

    上面输出255,应该是这样的:-1有符号,应该是11111111,然后把这个赋值给a,输出unsigned a时解释为255




    数组初始化:

      看代码与结果:

     1 #include <iostream>
     2 
     3 using std::cout;
     4 using std::endl;
     5 using std::cin;
     6 
     7 int a[10];
     8 
     9 void show(int arr[], int len)
    10 {
    11     for (int i = 0; i < len; ++i)
    12         cout << arr[i] << " ";
    13     cout << endl;
    14 }
    15 
    16 int main(void)
    17 {
    18     int b[10];
    19     int c[10] = { 1, 2 };
    20     show(a, 10);
    21     show(b, 10);
    22     show(c, 10);
    23     cin.get();
    24 }

    其实这种东西要看编译器与具体系统环境,因为C标准从没定义“未初始化的int类型的默认值”。一般全局变量会初始化为0,b数组在在栈里面,都是脏数据,c数组初始化了前几个,那么后几个也被初始化了。所以初始化的工作程序员还是不要逃避吧。

  • 相关阅读:
    Java实现荷兰国旗问题
    Java实现荷兰国旗问题
    QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)
    怀旧老游戏
    我的第一个Chrome插件:天气预报应用
    ddd
    Android 反编译工具
    ASP.NET MVC局部视图
    jQuery类库的设计
    jquery+html三级联动下拉框
  • 原文地址:https://www.cnblogs.com/jiayith/p/3991793.html
Copyright © 2011-2022 走看看