示例:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
unsigned b = 1;
int a = -1;
printf ("The answer is %d\n",a*b);
printf ("The answer is %u\n",a*b);
cout << "The answer is "<< a*b << endl;
b = 1;a = -10;
cout << "a + b = "<< a+b << endl;
b = 1;a = -10;
cout << "a - b = "<< a-b << endl;
cout << "b - a = "<< b-a << endl;
return 0;
}
由图可知,在c++的运算中,有符号数据和无符号数据计算,则会生成一个有符号数据,即结果为负数,二进制符号位会当成数据,结果变成了正。
初始化:
若定义变量时没有指定初值,则变量被默认初始化,此时变量被赋予了“默认值”。默认值到底是什么由变量类型决定,同时定义变量也会对此有影响。
若是内置类型的变量未被显式初始化,它的值由定义的位置决定。定义于任何函数体之外的变量被初始化为0。定义于任何函数体内部的内置类型变量将不被初始化。一个未被初始化的内置类型变量的值是未定义的,若试图拷贝或以其他形式访问此类值将引发错误。