c++ 的类型别名 和 C11基于范围的for循环

c++ 的类型别名 和 C11基于范围的for循环

目录:

1. 类型别名的几种方式
2. C11标准下 基于范围的for循环

c++为类型创建别名的方式有两种

第一种是使用预处理器

#define BYTE char

说明 : 预处理器将在编译程序的时候用char 替换所有的BYTE,从而使BYTE成为char的别名.

第二种方式是使用c++的关键字 typedef 来创建别名

将 byte 作为 char 的别名可以这样操作

typoedef char byte ;

通用的格式

typedef typeName aliasName ;

如果要将aliasName 作为某种类型的别名 , 可以声明 aliasName , 如同将例如要将aliasName 声明为这种类型的变量那样,然后在声明前面加上关键字 typedef 例如: 要让 byte 成为char类型的指针的别名,可以将byte声明为char指针,然后加上关键字typedef 如下所示

typedef char* byte;

同样我们也可以使用 #define, 不过声明一系列变量时,这个方法不适用,例如:

#define FLOAT flaot *

FLOAT pa ,pb ;

//预处理器将该声明转换成这样

float *pa , pb ;

使用typedef 不会有这样的问题 , 他能够处理更为复杂的类型, 这样和 #define 相比 ,使用typedef 是一种更佳的选择,有时候,这也是唯一的选择.

注意

typedef 不会创建类型 , 而是为已有的类型创建一个新的名称.,如果将 word 作为 int 的别名,则 cout 将把 word 类型的值视为 int 类型

基于范围的for循环

简化了一种常见的循环任务: 对数组(或者容器类 ,如vector,和array)的每一个元素执行相同的操作.

cpp 复制代码
int  value[] = {1,2,3,4,5};

for( int  i : value ){

​		cout << i << "  " ;

}
  • 说明 i 最初表示数组value 的第一个元素,显示第一个元素后,不断执行循环,而 i 依次表示数组的其他元素.
  • 要修改数组的元素,需要使用不同的循环变量.
cpp 复制代码
for( int  &i : value ){

​		i=i+1;

}
  • 符号&表明 i 是一个引用变量 , 这种类型让接下来的代码能够修改数组的内容.
  • 还可以结合使用范围的for循环和初始化列表
cpp 复制代码
for( int  i : {1,2,3,4,5} ){

​		cout << i << endl;

}
提示

这样的循环,主要用于我的容器操作,简单吧,嘿嘿嘿和java风格的for循环一样.

cpp 复制代码
vector< string > name = {"wuxianfeng","llh","tfljsyhg"};
for( string wxf : name ){
	cout << wxf << "  " ;
}
相关推荐
Aphelios3809 分钟前
一次锁内网络IO引发的Tomcat线程池“饿死”事故
java·开发语言·spring boot·elasticsearch·tomcat·网络io阻塞·线程池耗尽
不可求~28 分钟前
C++ std::string_view 不是字符串:从悬空引用到安全用法
java·开发语言·c++
小小龙学IT1 小时前
C++ 正则表达式完全指南:从 std::regex 实战到 RE2 引擎原理(NFA/DFA/回溯陷阱)
c++·正则表达式
90后小陈老师1 小时前
PHP 配置默认值失效排查实录:isset 兜底遇上表单空串回填,首页文案是怎么集体消失的
开发语言·php
JJJennie7772 小时前
Gemini 3.7 Flash 上线,Google 想让 AI 多干活
开发语言·javascript·ecmascript
wuyk5553 小时前
Python 第三章:列表 List
服务器·开发语言·python
Evand J3 小时前
【MATLAB例程,车联网7】CACC网联车辆协同控制:ACC对比、V2X时延丢包与队列稳定性,附例程下载链接
开发语言·matlab·车联网
要努力点4 小时前
Python入门第六课
开发语言·python
Fa_Mian_Tuan4 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
萧瑟余晖4 小时前
Java深入解析篇三十三之消息队列
java·开发语言