C++的基本数据类型,包括数值、字符、用户定义的枚举类型和指针。大多数程序设计语言都提供这些类型。由于数、字符、和浮点类型的对象无法再分为更简单的部分,我们称其为简单数据。反之,结构化数据类型由简单类型的元素及元素之间的规则组成,这些类型包括数组、字符串、记录、文件、表、栈、队列、树、图和表格。多数程序设计语言提供程序结构或库函数来处理数组、字符串、记录和文件结构,因此它们被称为嵌入式结构化数据类型 。
常见问题和用法:
字符型:
1、 数码\'0\'的ascII 码值为48,数码范围为48至57:\'3\'的值为51(48+3)
3=‘3’-\'0’=51 - 48
2 、将一个字符从大写转换到小写,只需将该字符的ASCII码值加32:
ASCII(‘A’)=65 ASCII(‘a’)=65+32=97
实数类型:
1、将二进制数转换为十进制数:
0.01101 = 1/4+1/8+1/32=0.25+0.125+0.03125=0.40625
2、将十进制转换成二进制:
4.3125 = 4+0.25+0.0625=100.0101
3、十进制数0.15并没有一个等值的二进制小数部分,将其表示成二进制数需要无穷多位
0.15 = 1/8+1/64+1/128+1/1024....
枚举类型:
1、Boolean类型可说明为枚举类型,常量false的值为0,true的值为1,变量done定义为枚举型,初值为fasle:
enum Boolean{false,true};
Boolean Done=false;
字符串:
一段名字反转测试小程序:
#include <iostream.h>
#include <string.h>
void ReverseName(char * name, char * newName)
{
char *p;
p = strchr(name,\' \');
*p = NULL;
strcpy(newName, p+1);
strcat(newName, \",\");
strcat(newName, name);
*p=\' \';
}
void main(void)
{
char name[32],newName[32];
int i;
for(i=0; i<3; i++)
{
cin.getline(name, 32,\'\\n\');
ReverseName(name,newName);
cout<<\"Reversed name : \"<<newName<<endl<<endl;
}
}
//输入:ni hao
//返回:hao,ni
记录(开始还被忽悠了,以为是新东西,C++ 用结构类型表示记录,就是c的结构体,特殊的类,成员均是公共的):
struct student
{
int id;
char name[30];
}