基本的数据类型 char、unsigned char、int、short、unsigned shor、long、unsigned long、float、double、long double与C语言相同。扩展了bool类型,对结构体、联合、枚举做了改进。
#include <iostream>
#include <cstring>
using namespace std;
int main (void) {
struct std {
int age;
char name[20];
void who() {
cout << " 我是: " << name << " 今年: " << age << endl;
}
};
std s1; //不需要 struct std s1; 这样写,可以省略struct
s1.age = 20;
strcpy(s1.name, "王五");
s1.who();
return 0;
}
C++中定义联合体变量,可以省略union关键字
union XX{……};
XX x; //定义联合体变量直接省略union
支持匿名联合
union {//没有名字
……
};
#include <iostream>
using namespace std;
int main (void) {
union { //匿名联合
int num;
char c[4];
};
num = 0x12345678;
cout << hex << (int)c[0] << " " << (int)c[1] << endl;
return 0;
}
C++中定义枚举变量,可以省略enum关键字
C++中枚举是独立的数据类型,不能当做整型数使用
#include <iostream>
using namespace std;
int main (void) {
enum COLOR{RED, GREEN, BLUE};
COLOR c = GREEN;
// c = 2; //error
cout << c << endl;
return 0;
}
C++中布尔(bool)是基本数据类型,专门表示逻辑值
布尔类型的字面值常量:
? true 表示逻辑真
? false 表示逻辑假
布尔类型的本质:单字节的整数,使用1表示真,0表示假
任何基本类型都可以被隐式转换为布尔类型
#include <iostream>
using namespace std;
int main (void) {
bool a = true;
cout << a << endl; //输出:1
cout << boolalpha << a << endl; //输出:true
a = 5 + 3;
cout << boolalpha << a << endl; //隐式转换bool型 输出:true
return 0;
}
C++兼容C中的字符窜表示方法和操作函数
C++专门设计了string类型表示字符串
string类型字符串定义
string s; //定义空字符串
string s("hello");
string s = "hello";
string s = string("hello");
字符串拷贝
string s1 = "hello";
string s2 = s1;
字符串连接
string s1 = "hello", s2 = " world";
string s3 = s1 + s2; // s3: hello world
s1 += s2; //s1: hello world
字符串比较
string s1 = "hello", s2 = " world";
if(s1 == s2){ cout << "false" << endl; } //类似C语言中strcmp(……)
if(s1 != s2){ cout << "true" << endl; }
随机访问
string s = "hello";
s[0] = 'H'; //Hello
获取字符串长度
size_t size();//都不统计'\0'
size_t length();//都不统计'\0'
转换为C风格的字符串
const char* c_str();
string s2("hello");
const char *p = s2.c_str();
printf("%s\n", p);
字符串交换
void swap(string s1, string s2)