c++学习2 基础关键词
三 volatile强制访问内存
在一个变量的频繁使用中,系统为了提高效率,会自动将内存里面的数据放入CPU里的寄存器里。但在某些特殊场景下,放入寄存器这个操作反倒会导致CPU无法及时获取最新的一手数据导致失误(比如烟雾报警机器)所以这个时候为了防止data数据被放入CPU里面的寄存器(防止被优化),我们要给计算机一个指令,让CPU每一次处理数据都是从内存获取的。
example:
volatile int data=0;//对data的访问,必须从内存访问(防止编译器优化)。
四 sizeof测量类型的大小
类型本身不占用空间,但是内存类型有大小。比如int类型啊,int类型占4个字节吗(4B)?不是的,是在写了 "int data;"后,这个“data”变量占用4个字节的空间(4B)。类型有大小,但是它不占空间。只有当类型定义变量的时候,这个变量才会占据相对应类型的空间大小。所以说sizeof测类型大小,倒不如说sizeof测量的是类型未来定义的变量的所占空间的大小。
example:
cout<<sizeof('a')<<endl;//c++自动识别数据类型,这个类型是“char”,大小是一个字节(1B),屏幕显示“1”。
cout<<sizeof(10)<<endl;//如法炮制,int类型,4个字节(4B)。
cout<<sizeof(short)<<endl;//2B。
cout<<sizeof(long)<<endl;//32位平台,4B。
cout<<sizeof(float)<<endl;4B。
cout<<sizeof(double)<<endl;8B。
五 typedef给已有的类型取别名
typedef不能创建新的类型,它的功能是将名称冗长且复杂的类型名取一个短小的名称。
<s> 原来是起外号(喜 </s>
typedef的使用步骤:
1.先用已有的类型名定义一个普通的变量;
2.用别名替代掉变量名;
3.在整个表达式前面加上"typedef";
example:
int num;//步骤一。
int INT666;//步骤二。
typedef int INT666;//步骤三。
INT666 a;//作用与"int a;"等效,INT666就是int类型的别名。
int b;//已有的类型不会失效被覆盖,仍让有效。
----------------------------------------------------------------------------------------------
int arr[5];
int MYARR[5];
typedef int MYARR[5];
MYARR arr={10,20,30,40,50};
for(int i=0;i<5;i++)
{
cout<<arr[i]<<" ";
} cout<<endl;
//结果是“10 20 30 40 50”。
----------------------------------------------------------------------------------------------
int *p;
int *MYP;
typedef int *MYP;
MYP p;//p的类型就是int *类型。相当于“int *p”。
typedef的好处与作用:
一:扩展系统的兼容性,提高项目的可移植性;
二:后期学习与应用结构体和类型的时候可以帮助我们简洁代码,方便好用。
最新文章
- CodeForces336 A &; B
- Atitti 文本分类 &#160;以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案
- 中国排名前100的IT公司 (转)
- android 数据库操作详解
- 通用表表达式(Common Table Expression)
- 同一客户代码下一个CPN对应多个FG会出现CPN描述一样的问题
- Android使用pull解析xml
- [转]用Objective-C实现简单的数学字符串公式的计算
- HDU2516-取石子游戏
- IDoc 基础知识
- Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
- 配置ssh框架启动tomcat服务器报异常Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
- blfs(systemd版本)学习笔记-构建ibus-libpinyin使用中文输入法
- MySQL的一些操作(学习记录_备忘)
- 算法第四版-文字版-下载地址-Robert Sedgewick
- Quality of Service 0, 1 &; 2
- Unity shader学习之Blinn-Phong光照模型
- @RequestMapping使用须知
- php web开发安全之sql注入和防范:(一)简单的select语句注入和防范
- 原生JS实现ajax 发送post请求
热门文章
- Java的JDK以及maven环境变量配置
- Java Maven环境搭建
- centos7.8 安装 redis5.0.2
- Android build系统中常用“LOCAL_” 变量
- Razor视图cshtml做到运行时编译【提高开发效率】
- Element--->;>;>;最新骨架屏Skeleton使用
- superset2.0.0 支持MaxCompute 时间颗粒
- ESP_IDF中使用TFT_eSPI库驱动ST7789V
- k8s centos 79,用kuboard-spray装成功。低版本的。安装docker-ce,安装epel源
- Dynamics 365 登录后网页显示空白