标签:值类型 指定位置 传递 序号 定位 元素 条件 逻辑 其他
对于隐式转换,想必你已经了解了算数转换中的“ 向上对齐 ”的概念;了解了赋值隐式转换的规律( 右值类型转换为左值类型 )。但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. 除了本文所列举的,隐式转换的情形还有很多。
标签:值类型 指定位置 传递 序号 定位 元素 条件 逻辑 其他
原文地址:http://www.cnblogs.com/muchen/p/6351869.html