代码改变世界

char变量做除法的问题

2012-05-02 11:45  Rollen Holt  阅读(1403)  评论(0编辑  收藏  举报

问题源地址:http://q.cnblogs.com/q/34775/

问题描述:

 1  #include<iostream.h>
 2 #include<vector>
 3 #include<string>
 4 using namespace std;
 5 int main()
 6 {
 7  char c_i=5;
 8  char c_p=2;
 9  char c_r=c_i/c_p;
10  cout<<(int)c_r;    //此输出和 cout<<c_i/c_p;可以出结果;
11                            //cout<<c_r;会出来一个圈(不认识是什么符号)  
12 }
13 想问下作用的机理?
14 char/char出来是char 还是int? 对此char“除/”的过程是如何运行的?

解答:

/的左右操作类型为数值,其实char本身就是一个整形数据,可以看一下ASCII表,char/char得到的是一个整形数据,对char做/操作的时候会将char看做整形数据。具体怎么个过程,看一下反汇编。