C++的名称空间
来先看看下面几行代码,不懂没关系,因为会长还没打通你的任督二脉。
#include "iostream"//下文 基础输入输出函数 cout 的头文件。
using namespace std;//使用std命名空间。下文 cout 就是该名称空间下的。
#include "windows.h"// 下文用到 system()函数
//自定义一个名称空间。空间名字为 a。
//这是单文件定义,有很多缺点,为了方便理解,这里就这样写了。 以后讲到头文件时候,会讲多文件定义方法。
namespace a
{
void wang_huizhang()
{
cout << "计算机协会C++培训" << endl;//endl是换行的意思。
}
}
using namespace a;//定义后,要使用该名称的空间。 如果没有这句,下面函数无法识别 wang_huizhang() 这个函数。
int main()
{
wang_huizhang();
system("pause");
return 0;
}
首先,我们看到了主函数和他的返回值。// int main() { };现阶段我们写的一切程序都是从主函数开始。其实也并不是从主函数开始,这里就不深究了。在主函数里,不断调用其它的函数和功能来实现程序。
在主函数里,我们看到了输出函数 cout<<" ";输出函数包含在 输入输出流头文件 iostream 里的函数。为了使用这个函数,我们必须包含这个头文件。即第一行的 #include"iostream"
头文件下面有一行 using 命令。其意思是 使用 std 名称空间。cout<<" ",endl,都是这个空间里的关键字。只有使用了这个名称空间,编译器才能调用这些功能。
std 名称空间是世界公认的。我们可以自己写名称空间。如上述代码,写了一个叫做 a 的名称空间。空间里有一个叫做 wang_huizhang() 的函数。
下面一行我们写了using namespace a;这里是单文件定义方法,单文件定义并不好,为了观看方便,就不写多文件定义了,以后会讲到多文件定义。
使用了名称空间 a。在主函数里我们就可以调用里面的 wang_huizhang() 这个函数。//去掉这行试试会怎样呢?当然是编译器无法识别这个wang_huizhang()函数了。
以上扯远了。言归正传,开始了解 数据类型。
C++的数据类型
整数 (integer)类型。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
int a;//开辟叫做 a 用来存整数的内存。
a=1;//让叫做 a 的地方赋值为 1 。
int b,c,d;//开辟 名字叫做 b 和 c 和 d 的三个整数型空间。
int e=2;//开辟叫做 e 的空间 并赋值为 2 。开辟并赋值
int f=3,g=4;//开辟 f 和 g 并赋值。
int h(3);//开辟叫做 h 的整数型空间,并赋值为 3 。
cout<<a<<endl<<e<<endl<<h<<endl;//依次输出 a 换行 e 换行 h 换行。
//endl暂时理解为换行,它含有清空缓冲区的功能。
system("pause");
return 0;
}
//最后按下 f9 把代码编译成 0 和 1 。再按 f10 运行该程序。
//所有的程序都要先编译,再运行。(先 f9 再 f10)。
其他类型的定义方法和 int 型一样。参照上述代码。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
cout<<INT_MAX<<endl; // INT_MAX 是 int 型的最大值。超出这个范围 就要使用其他类型了。
cout<<INT_MIN<<endl;//同理,这是最小值。这个最大最小值也是在头文件 iostream 中的。
system("pause");
return 0;
}
//按 f9 和 f10 看看结果吧。以后 这句都会省略掉。
运行结果如下一张图:
由上图可知,我的操作系统中,int 型的最大值为 2147483647 (2 的32次方 -1)。最小值为 -2147483648 (-2的32次方)。超出这个范围就会出错。不同系统会有不同最大最小值。//可以试试超出后有什么有趣的结果。
其他整型如下代码:
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
short int a=10;//可以写成 short a=10 ; 因为 int 在这里可以省略。
//short int 是短整型。有时用不到那么大的空间,就使用这个短整型。
cout<<SHRT_MIN<<endl;//输出短整型的最小值。
long int b;//长整型。(理论上讲比int行长)
long long int c;//长长整型。(更加长的整形)
long long int d=LLONG_MAX;//
cout<<d<<endl;//输出 d 看看长长整型的最大值。
cout<<LONG_MAX<<endl;//输出长整型的最大值。
cout<<LONG_MIN<<endl;//输出长整型的最小值。
system("pause");
return 0;
}
整型前面都会空出一位当作符号位。生活中,负数有时用不到。这是就可以把符号位空出来,这样内存就可以存储更大一些的数据了。(使用unsigned关键词来定义无符号数,而上文的有符号数关键词 signed 可以省略。)
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
unsigned short int a;//定义无符号短整型 a 。
cout<<USHRT_MAX<<endl;//输出无符号的短整型最小值。
signed long int b;//定义有符号长整形。也可以写成,long int b;因为signed可以省略。
long long int d=ULLONG_MAX;//定义 d 为 无符号长长整型最大值。
cout<<d<<endl;//输出 d。
system("pause");
return 0;
}
数据大小的关键词(这里随意看看就行)
//整数部分
CHAR_BIT char位数
CHAR_MAX char最大
CHAR_MIN char最小
SCHAR_MAX 有符号char最大
SCHAR_MIN 有符号char最小
UCHAR_MAX 无符号char最大
SHRT_MAX short最大
SHRT_MIN short最小
USHRT_MAX 无符号short最大
INT_MAX int型最大
INT_MIN int型最小
UINT_MAX 无符号int最大
LONG_MAX long int 最大
LONG_MIN long int 最小
ULONG_MAX 无符号long int 最大
LLONG_MAX long long int 最大
LLONG_MIN long long int 最小
ULLONG_MAX 无符号long long int最大
//下面是浮点数部分。
FLT_MANT_DIG float型尾数位数
FLT_DIG float型最少有效数字位数
FLT_MIN_10_EXP 带有全部有效数字float型的负指数的最小
FLT_MAX_10_EXP float型的正指数的最大
FLT_MIN 保留全部精度的float型正数的最小
FLT_MAX float型正数的最大
FLT_EPSILON float可以表示的,与1.00的最小差
来看浮点数的定义,和 int 型的一模一样:
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
float a=0.1;//浮点型,就是小数。
double b=0.0000000123456;//双精度浮点型,就是更大的小数。
long double c=0.123456789879787979798;//就是更大更大的小数。
system("pause");
return 0;
}
char型(字符型)
用来存放字符。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
char firstname = 'w';
char secondname = 'a';
char a='!';
cout<<firstname<<secondname<<a<<endl;
system("pause");
return 0;
}
bool型
bool类型用于表示 真 和 假。(即 0 和 非0 )
定义方法和 int 型 一样。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
bool a=false;//也可以写出 bool a = 0; 0 就是假的意思。
cout<<a<<endl;
bool b(1);//只要不是 0 ,写多少都表示 非0 。但是建议写成 1 。防止意外发生。
cout<<b<<endl;
bool c(true);
cout<<c<<endl;
system("pause");
return 0;
}
自定义类型(结构体)
不要求掌握。以后会详细讲解。这里只要知道有这种类型就行。
#include"iostream"
using namespace std;
//自定义类型,叫做 wang 的结构体。他和 int double char 等基础类型都是C++的数据类型。
struct wang
{
bool isboy;
bool ischild;
short int age;
char telnumber[12];
};
//输出结构体 wang 的代码。
void shuchu(struct wang x)
{
cout<<x.isboy<<endl;
cout<<x.ischild<<endl;
cout<<x.age<<endl;
cout<<x.telnumber<<endl;
}
int main()
{
wang a={true,false,20,"18852899999"};
shuchu(a);
return 0;
}
苹果系统安装windows双系统:
苹果电脑安装windows双系统是比较简单的,但是我只有论理,没实验过,不敢乱搞。
这里要用到苹果的 bootcamp软件。方法如下:
http://jingyan.baidu.com/article/656db918fc9701e381249cf5.html
按照链接的步骤你们试试吧。苹果电脑我没搞过,只有理论。怕搞坏了赔不起。
基础输入输出流
cout,和,cin 是基础输入输出流函数。在缓冲区输入和输出。endl 是换行并清空缓冲区的关键词,在输出函数清空缓冲区能避免出错。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
int a;
float b;
cin>>a>>b;
cout<<"a的相反数为"<<-a<<endl;
cout<<"b为:"<<b<<endl;
system("pause");
return 0;
}
getchar();和putchar();。这两个并不是函数,而是在头文件中的宏定义。
#include"iostream"
using namespace std;
#include "windows.h"// 下文用到 system()函数
int main()
{
char c;
c=getchar();
putchar(c);
cout<<endl;
system("pause");
return 0;
}