limit.cpp(64位操作系统)
short两个字节 2*8=16 maximum_values=2^16-1
#include<iostream>
#include<climits>
int main()
{
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
// long long n_llong = LLONG_MAX;
cout<<"int is "<<sizeof(int)<<" bytes."<<endl;
cout<<"short is "<<sizeof n_short<<" bytes."<<endl;
cout<<"long is "<<sizeof n_long<<" bytes."<<endl;
// cout<<"long long is "<<sizeof n_llong<<"bytes."<<endl;
cout<<endl;
cout <<" Maximum values:"<<endl;
cout << "int: "<<n_int<<endl;
cout <<"short: "<<n_short <<endl;
cout <<"long: "<<n_long <<endl;
// cout <<"long long: "<<n_llong <<endl<<endl;
cout <<" Minimum int values:"<<INT_MIN<<endl;
cout <<"Bits per byte = " <<CHAR_BIT<<endl;
return 0;
}
exceed.cpp
#include<iostream>
#include<climits>
#define ZERO 0
int main()
{
using namespace std;
short sam = SHRT_MAX;
unsigned short sue = sam;
cout<<"Sam has "<<sam<<"dollars and sue has"<<sue<<"dollars deposited."<<endl;
cout <<"Add $1 to each account."<<endl<<"Now ";
sam = sam + 1;
sue = sue + 1;
cout<<"Sam has"<<sam<<" dollars and Sue has "<<sue;
cout<<"dollars deposited.\nPoor Sam!"<<endl;
sam = ZERO;
sue = ZERO;
cout << "Sam has "<< sam <<"dollars and sue has"<<sue<<"dollars deposited."<<endl;
cout <<"Take $1 to each account."<<endl<<"Now ";
sam = sam - 1;
sue = sue - 1;
cout<<"Sam has"<<sam<<" dollars and Sue has "<<sue;
cout<<"dollars deposited."<<endl<<"Lucky sue!"<<endl;
return 0;
}
该程序将一个short变量和unsigned short变量分别加1减1
无符号类型 unsigned==unsigned int 其优点是能增大变量能够存储的最大值。例如short表示的范围为-32768到32767,则无符号版short表示范围为0-65535.仅当数值不会为负数时应使用无符号类型,例如人口,粒数等。
转义序列的编码
const限定符
const限定符用来修改变量声明和初始化 初始化后其值就被固定了,编译器将不允许再修改该常量的值
类型转换
typecast.cpp
#include<iostream>
int main()
{
using namespace std;
int auks,bats,coots;
auks=19.99+11.99;
bats = (int)19.99+(int)11.99;
coots = int(19.99)+int(11.99);
cout << "auks = "<< auks << ",bats = "<<bats;
cout << ",coots = " << coots <<endl;
char ch = 'Z';
cout << "The code for " << ch << " is ";
cout << int(ch) << endl;
cout << "Yes,the code is ";
cout << static_cast<int>(ch) <<endl;
return 0;
}
static_cast<> 可用于将值从一种数值类型转换为另一种数值类型 (运算符static_cast<>比传统强制类型转换更严格)
C++中的auto声明