zoukankan      html  css  js  c++  java
  • C语言笔记

    寄存器变量

    计算机的数据运算是在寄存器中进行的,如果把变量放在寄存器中可以节省一定的时间。

    通过在动态变量的定义中使用关键字register,可以请求编译器将该变量存储在寄存器中。

    关键字register只能用于简单的数值变量,而不能用于数组、结构、静态变量、外部变量,不能定义指向寄存器变量的指针。

    定义示例:register int x;

    有的编译器会自己优化,设置变量作为寄存器变量。

    注:如果寄存器没有空间,则不会放在寄存器中,而是默认的内存中。

    以我目前所学,估计用处不大。


    数组初始化

    int x[10];

    如果不是全局变量或者静态变量,此时数组元素均为垃圾数。

    全局变量、静态变量默认为零,但是不同的编译器可能有所不同。

    int x[10]={0};

    这样数组全部都被置为0。

    int x[10]={1};

    第0个元素是1,其余均为0。

    数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值。


    运算过程中变量超出范围

    几个变量做运算时,实际上创建了一个临时变量来存储得到的值,然后再转换成目标变量的类型。

    比如说2个int类型变量相乘,就有可能超出数据范围。现在想起来感觉是理所当然的,不过当时真的没有发觉。

    int i,j;
    
    long long sum;
    
    sum+=i*j;

    这样就有可能出错,也许是被long long 蒙蔽了眼睛。

    补充:

    这种情况下就需要用到类型转换或者类型标识。

    比如说:

    long bigInterval = 7 * 30 * 24 * 60 * 60 * 1000;

    应该写成:

    long bigInterval = 7L * 30L * 24L * 60L * 60L * 1000L;

    另之前一直弄错了 int 类型的范围,约等于 -2*10^9~2*10^9 。。误以为是10次方,都是泪啊啊啊啊


  • 相关阅读:
    XCode下Swift – WebView IOS demo
    swift-初探webView与JS交互
    Swift 实践之UIWebView
    iOS 权限判断 跳转对应设置界面
    iOS~判断应用是否有定位权限
    iOS 判断是否有权限访问相机,相册
    UIAlertController中TextField的用法
    Swift-UITextField用法
    多年iOS开发经验总结(一)
    Python lambda和reduce函数
  • 原文地址:https://www.cnblogs.com/canchan/p/9644613.html
Copyright © 2011-2022 走看看