首页 > 编程语言 >c++学习2 基础关键词

c++学习2 基础关键词

时间:2023-02-03 00:44:05浏览次数:47  
标签:typedef cout int 关键词 c++ 学习 内存 类型 data

三 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的好处与作用:

一:扩展系统的兼容性,提高项目的可移植性;

二:后期学习与应用结构体和类型的时候可以帮助我们简洁代码,方便好用。

标签:typedef,cout,int,关键词,c++,学习,内存,类型,data
From: https://www.cnblogs.com/wangbohan/p/17087846.html

相关文章

  • 机器学习基本概念
    机器学习基本概念1.基本定义机器学习:是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。2.机器学习的工作流程1.获取数据2.数据......
  • C++ 虚函数底层表达
    转载一篇乐哥的博客,对虚函数,虚函数表和派生类对象赋予给基类指针时地址的变化等会有更深的理解https://mp.weixin.qq.com/s?__biz=Mzk0MzI4OTI1Ng==&mid=2247489554&idx=1......
  • C语言学习: 快速排序(递归方式)
    1#include<stdio.h>2#include"io_utils.h"3#include<stdlib.h>4#include<time.h>56#definePLAYER_COUNT5078voidSwapElements(intarray[......
  • 《RPC实战与核心原理》学习笔记Day16
    23|如何在没有接口的情况下进行RPC调用?我们什么情况下需要在没有接口时进行RPC调用?列举2个典型场景:我们搭建一个测试平台,允许各个业务方在测试凭条上通过输入接口、......
  • Objective-C语法学习 第四天
    关于NSObject和运行时系统类NSObjectOC作为一门动态编程语言,有很多动态的特性,OC不仅需要编译环境,还需要一个运行时系统(runtimesystem)来执行编译好的代码。运行时系统扮演的......
  • go channel学习使用
     出处:https://www.cnblogs.com/jiujuan/p/16014608.html什么是channel管道#它是一个数据管道,可以往里面写数据,从里面读数据。channel是goroutine之间数据通......
  • JavaScript学习笔记—DOM:元素的添加、修改、删除
    appendChild(node):向节点添加最后一个子节点insertAdjacentHTML(position,text):把元素插入到指定位置position:beforebegin-插入到当前元素的前面,即开始标签之前a......
  • C语言学习: 数组打乱
    1#include<stdio.h>2#include"io_utils.h"3#include<stdlib.h>4#include<time.h>56#definePLAYER_COUNT5078voidSwapElement(intarray[]......
  • 机器学习-数据处理-降维
    降维的定义降维是将高维数据变成低维表示,同时数据中蕴含的信息尽量保持不变。(高维—>低维)降维是一种非监督学习任务。因为降维过程中不用样本的标签。(非监督) 降维的......
  • 今日学习
    /*intmain(){//a++前置++ -->先++后使用,先自增后赋值 inta=10; intb=a++; printf("%d\n",a); printf("%d\n",b); return0;}*//*intmain(){//强制......