博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言笔记
阅读量:6236 次
发布时间:2019-06-22

本文共 841 字,大约阅读时间需要 2 分钟。

寄存器变量

计算机的数据运算是在寄存器中进行的,如果把变量放在寄存器中可以节省一定的时间。通过在动态变量的定义中使用关键字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 蒙蔽了眼睛。

 

2018-09-20 21:33:53

 

补充:

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

比如说:

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

应该写成:

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

 

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

 

2018-10-04 21:27:46


 

转载于:https://www.cnblogs.com/canchan/p/9644613.html

你可能感兴趣的文章
puma vs passenger vs rainbows! vs unicorn vs thin 适用场景 及 performance
查看>>
js中的总结汇总(以后的都收集到这篇)
查看>>
QQ左侧滑动显示
查看>>
sql server中局部变量与全局变量的 申明与赋值(转)
查看>>
从无线安全到内网渗透
查看>>
Xamarin iOS教程之申请付费开发者账号下载证书
查看>>
!+"\v1" 用来“判断浏览器类型”还是用来“IE判断版本”的问题!
查看>>
javascript之Style物
查看>>
C# 公历转农历
查看>>
LeetCode - Divide Two Integers
查看>>
去掉 “当前安全设置会使计算机有风险”提示
查看>>
sql 聚合函数
查看>>
ABP源码分析二十:ApplicationService
查看>>
学习OpenCV——BOW特征提取函数(特征点篇)
查看>>
帮你店铺日销千单的20个淘宝小技巧
查看>>
python deep copy and shallow copy
查看>>
I.MX6 Ethernet MAC (ENET) MAC Address hacking
查看>>
下载本 WebEnh博客 安卓APP
查看>>
iOS中常见 Crash 及解决方案
查看>>
【python】datetime获取日期,前一天日期
查看>>