第二章
//my first.cpp
#include<iostream> //头文件
int main() //函数头
{ //函数体的开始
using namespace; //命名空间,使定义可见
cout<<"Hello"; //打印信息到屏幕
cout<<endl; //新起一行
cout<<"World!<<endl;//更多输出
return 0; //结束main()
} //函数体的结束
注释:C++注释以
//
打头,到行尾结束。注释可以位于单独一行,也可与代码同一行。C风格注释以/*
开头,*/
结束,可以跨越多行。两种风格注释都可以使用。预处理编译指令
#include
:预处理器将头文件的内容添加到程序中。函数头:
int main()
,描述的是main()
与操作系统之间的接口。通常,main()
被启动代码调用,启动代码是由编译器添加到程序中的。这里无函数参数,函数返回类型为int
。编译指令
using namespace
:名称空间。类、变量和函数是C++编译器的标准逐渐,它们都被放在名称空间std
中。仅当头文件没有扩展名h
时,情况才是如此。用std
可以替代std::cout
,std::endl
等。所有名称可见。函数体
{
}
使用C++的
cout
输出信息:与printf()
相比,cout
能够识别和显示所开发的新数据类型,不需要再打印之前指明数据类型,更灵活。默认情况下,cout
十进制格式,如果按八进制或者十六进制打印:
cout<<hex;
cout<<
+要打印的变量(16进制);
cout<<oct;
cout<<
+要打印的变量(8进制);
使用C++的
cin
输出信息:cin<<
。结束
main()
函数的return
语句在多函数程序中使用
using
编译指令using namespace std;
//放在函数外面
第三章
C++数据类型
内置数据类型
整形:
short
、int
、long
、long long
计算机内存是由
位(bit)
的单元组成,每种数据类型所占位数不一样,这取决于具体的操作系统。C++提供了一种灵活的标准,确保最小长度
:short
至少16
位;int
至少与short
一样长;long
至少32
位,且至少与int
一样长;long long
至少64
位,且至少与long
一样长。sizeof()
可以返回数据类型的字节长度。在climits
(老式实现为limits.h
)包含了整形限制的信息,如INT_MAX
为int
的最大取值,SHRT_MAX
,LONG_MAX
,LLONG_MAX
。
#include<iostream>
#include<climits>
using namespace std;
int main()
{
int n=INT_MAX;
int nm=INT_MIN;
short s=SHRT_MAX;
short sm=SHRT_MIN;
long l=LONG_MAX;
long lm=LONG_MIN;
long long ll=LLONG_MAX;
long long llm=LLONG_MIN;
cout<<"short is:"<<sizeof(s)<<"bytes"<<endl;
cout<<"int is:"<<sizeof(n)<<"bytes"<<endl;//对非int类型,sizeof的括号可写可不写
cout<<"long is:"<<sizeof(l)<<"bytes"<<endl;
cout<<"long long is:"<<sizeof(ll)<<"bytes"<<endl;
cout<<"Value range:"<<endl;
cout<<"short:"<<sm<<"-"<<s<<endl;
cout<<"int:"<<nm<<"-"<<n<<endl;
cout<<"long:"<<lm<<"-"<<l<<endl;
//cout<<"long long:"<<llm<<"-"<ll<<endl;
return 0;
}
测试机器:32位Windows7
无符号类型
前面4种整形都有一种不能存储负值
的无符号变体
,其优点是可以增大变量能够存储的最大值。unsigned short:[0,2^16-1]
unsigned int或unsigned:[0,2^32-1]
unsigned long:[0,2^32-1]
unsigned long long:[0,2^64-1]
以上结果基于32位Windows7系统
char
类型:字符和小整数(比short
更小的整形)unsigned char
与signed char
:unsigned char
类型表示范围0-255
,signed char
表示范围是-128-127
。但char
本身还是没有符号的。bool
类型:与C一致浮点类型:
float
、double
、long double
float
至少32
位
double
至少32
位
long double
通常为80
、96
或128
位
三种类型的指数范围至少是-37
到+37
。
浮点常量:
`1.234f`/`2.45E20F` //float常量
`2.345324E28` //double常量
`2.2L` //long double常量
常量定义
在C++中,用限定字const+常量数据类型+常量名
定义常量,与C中用#define
定义不同。
运算符
+
、-
、*
、/
、%
注意/
运算,如果两边都是int
,则结果也是int
;如果一边是浮点型
,则结果也是浮点型
。–这点在《算法入门经典》里也有提到,非常重要!!!
aotu声明
C++ 新增工具,让编译器能够根据初始值的类型推断变量的类型。auto n=100;
//n is intauto x=1.5;
//x is doubleauto y=1.3e12L;
//y is long double