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数组初始化了前几个,那么后几个也被初始化了。所以初始化的工作程序员还是不要逃避吧。

  • 相关阅读:
    批处理命令系列
    CMD批处理之PC查看连过的WIFI密码
    数据结构与算法之各种方法遍历二叉树
    二叉树同构判定算法
    卡拉兹(Callatz)猜想
    Java之字符串比较大小
    Java报错之StackOverflowError
    火绒勒索病毒诱捕技术浅析
    数据结构与算法之二叉链树
    数据结构与算法之广义表的基本运算
  • 原文地址:https://www.cnblogs.com/jiayith/p/3991793.html
Copyright © 2011-2022 走看看