C++学习(61)
来源:互联网 发布:单片机控制蓝牙模块 编辑:程序博客网 时间:2024/06/05 17:55
1. 析构函数没有参数,无返回值。名字和类名相同。前面加一个~。
2. 以下程序的K最终值为:90
inti=10;
intj=20;
intk=3;
K *=i+j’
*=表示将第一个操作数的值与第二个操作数的值相乘;将结果存储在第一个操作数指定的对象中.而且根据运算符优先级:+优先级 大于*=优先级,
3.下面的C语言语句,哪一个可以把一个32位变量的最高位置为1且保持其它位不变?
A. reg32|=1<<31;
B. reg32&=1<<31;
C. reg32&=~(1<<31);
D. reg32^=1<<31;
分析:|是按位或运算,<<是左移运算,1的二进制是0000 0000 0000 0000 0000 0000 0000 0001(int 类型占4个字节,每个字节8位);
1<<31的意思是将1的二进制左移31位,即将0000 0000 0000 0000 0000 0000 0000 0001 整体左移31位,右边的补零。
结果为1000 0000 0000 0000 0000 0000 0000 0000。
reg32|=<<32;的意思是reg和1000 0000 0000 0000 0000 0000 0000 0000按位或,并将结果赋给reg32。相当于reg32=reg32 |(1<<31)。
4.关于C语言值得vliatile关键字,下面说法哪一个是错误的(B)
A 编译器会禁止对volatile修饰的变量进行读写优化
B 用volatile修饰的变量,读取速度更快
C 每一次读取volatile修饰的变量都会从内存中读取
分析:volatile提醒编译器它后面所定义的变量随时都有可能改变 ,因此编译后的程序每次需要存储或读取这个变量的时候 ,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储, 可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
分析二:1> 告诉compiler 不能做任何优化
2> 用volatile 定义的变量会在程序外被改变,每次都必须从内存中读取,而不能重复使用放在cache或寄存器中的备份。
C语言中volatile关键字的作用
5.分析下列程序:
#include<iostream>using namespace std;int main() { const int a=10; int *p=(int *)(&a); *p=20; cout<<"a="<<a<<",*p"<<*p<<endl; return 0;}输出结果: a=10,*p=10;
分析:因为a 和p都指向相同的内存地址,所以输出的前两个结果是相同的,但为啥相同的内存里的结果不相同么?--这就是常量折叠.
这个"常量折叠"是 就是在编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表。可以算作一种编译优化。
因为编译器在优化的过程中,会把碰见的const全部以内容替换掉(跟宏似的: #define pi 3.1415,用到pi时就用3.1415代替),这个出现在预编译阶段;但是在运行阶段,它的内存里存的东西确实改变了!!!
简单的说就是,当编译器处理const的时候,编译器会将其变成一个立即数。
- [C学习]函数(?)
- C#(WINFORM)学习
- C学习(2)
- 学习资源(C++)
- C++&C学习笔记(一)(基础)
- Linux-GCC学习(C/C++)
- C指针学习(Pointers in C)
- 学习C语言的相关网站(C学习资料)
- 学习C语言的相关网站(C学习资料)
- 如何学习C++(经典)
- [C学习]总结(数据类型)
- ---------------C#(.NET)学习步骤---------
- C++test 学习(一)
- C++test 学习(二)
- C++test 学习(三)
- C++test 学习(四)
- C++test 学习(五)
- C#_WinForm学习(1)
- JVM GC(垃圾回收)
- ofbiz实体引擎(八) 创建表
- uva1291 Dance Dance Revolution(dp)
- JavaScript整理
- CloudStack相关技术-Pod,Cluster,Host
- C++学习(61)
- Linux运维学习笔记之三:组合命令及命令分类、符号、管道 、工具集
- CSS3落叶动画
- 图的深度遍历----dfs
- opencl基础概念之并行
- ofbiz实体引擎(九) 多租户
- ReentrantLock实现原理及源码分析
- 5、volley 官方教程-自定义请求
- Linux运维学习笔记之四:安装后的基本调优及安全设置(系统基础优化)