类型转换

一 隐式类型转换

 

概念

  所谓隐式类型转换就是在编译时由编译程序按照一定规则自动完成,而不需人为干预。

总则      

1、算术运算式中,低类型能够转换为高类型。  

   2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。    

   3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。   

   4、函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。

 
其他:

1. 强制类型转换后原变量的类型不变

int i;
float f = (float)i;

 此后i的类型还是int型;

 

2. 不允许声明无具体类型的void数组

   void ch[ ];   //错误,declaration of ‘str’ as array of voids

 

3. 允许声明void*类型,但是使用前一定要确定其类型

void *str;
str = "hello";
char* sstr = (char*)str;
for(int i=0;i<5;i++) {
    printf("%c\n",srt[i]);  //错误,invalid use of void expression 
    printf("%c\n",((char*)str)[i]); //正确,但是str的类型并未改变,还是void *;
    printf("%c\n",sstr[i]);

}

 

4. void*作形参时可以接收任何类型的指针实参,有统一接口的功效;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值