博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五篇:你“ 看不见 ” 的隐式转换
阅读量:4519 次
发布时间:2019-06-08

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

前言

       对于隐式转换,想必你已经了解了算数转换中的“ 向上对齐 ”的概念;了解了赋值隐式转换的规律( 右值类型转换为左值类型 )。但C++中的隐式转换远不止这些,本文就将告诉你一些容易被忽略,但事实上发生了的隐式转换。

数组转换为指针

       在许多情况下,数组都隐式转换为了指针。取数组元素的过程就是根据首元素和元素序号以及元素大小到指定位置取值;数组作为函数参数传递给函数的过程中也转换成了指向首元素的指针。当然,在一些其他的场合,隐式转换未必发生,比如sizeof( 数组 )就不会隐式转换为sizeof( 指针 )。

逻辑判断中其他变量向布尔类型隐式转换

       if ( p ), while ( p ),在很多情况下我们都看到这样的语句( p通常是指针 )。这里其实发生了隐式转换,当p不为NULL或者不为0,则p转换成了1作为逻辑判断条件;当p为NULL或者0,则p转换成了0作为逻辑判断条件。

逻辑判断中流对象向布尔类型的转换

       while ( cin >> s );这是我们在获取用户输入时常使用的语句,根据cin流获取变量后的状态,它将转换为布尔类型的0或者1。

枚举变量或者成员用于计算时隐式转换为整型

       枚举变量或者成员常作为整型出现在算式中,这种情况下,枚举变量或类型都是先向上转换为整型再带入式子计算。

说明

       1. 有很多A到B发生了隐式转换的过程会被误解为A就是B,这是不对的。

       2. 除了本文所列举的,隐式转换的情形还有很多。

转载于:https://www.cnblogs.com/muchen/p/6351869.html

你可能感兴趣的文章
验证码
查看>>
Django缓存配置
查看>>
Ubuntu下安装 Mysql
查看>>
LeetCode--Reverse Integer
查看>>
PHP_APC+Ajax实现的监视进度条的文件上传
查看>>
计算机网络课堂笔记3.29
查看>>
word2vec----CBOW
查看>>
衰减学习率真的有用吗?
查看>>
ORACLE 建库过程总结
查看>>
Ogre1.8.1 Basic Tutorial 6 - The Ogre Startup Sequence
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用...
查看>>
c# Winform 开发分屏显示应用程序
查看>>
canvas刮奖
查看>>
qt下拖放(一)
查看>>
Linux后台运行python程序并输出到日志文件
查看>>
HTML的语义化和一些简单优化
查看>>
jQuery基础教程
查看>>
Spring 在xml文件中配置Bean
查看>>
poj1611(简答并查集)
查看>>
基于scap的服务器安全基线核查设计与实现
查看>>