定义:使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
int i, j, k; char c, ch; float f, salary; double d;
#include using namespace std; // 变量声明 extern int a, b; extern int c; extern float f; int main (www.xkfyz.com) { // 变量定义 int a, b; int c; float f; // 实际初始化 a = 10; b = 20; c = a + b; cout << c << endl ; f = 70.0/3.0; cout << f << endl ; return 0; }
类型限定符:
限定符 | 含义 |
---|---|
const | const 类型的对象在程序执行期间不能被修改改变 |
volatile | 修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率 |
restrict | 由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict |
auto f=3.14; //double auto s("hello"); //const char* auto z = new auto(9); // int* auto x1 = 5, x2 = 5.0, x3='r';//错误,必须是初始化为同一类型
{ www.shyejk.com }
#include // 函数声明 void func(void); static int count = 10; /* 全局变量 */ int main() { www.veryyx.com { func(); } return 0; } // 函数定义 void func( void ) { static int i = 5; // 局部静态变量 i++; std::cout << "变量 i 为 " << i ; std::cout << " , 变量 count 为 " << count << std::endl; }
声明数组
初始化数组
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0}; balance[4] = 50.0;
C风格字符串
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; char greeting[] = "www.veryxzx.com";
函数 | 目的 |
---|---|
strcpy_s(s1, s2); | 复制字符串 s2 到字符串 s1 |
strcat_s(s1, s2); | 连接字符串 s2 到字符串 s1 的末尾 |
strlen(s1); | 返回字符串 s1 的长度 |
strcmp_s(s1, s2); | 如果 s1 和 s2 是相同的,则返回 0;不同时返回-1 |
strchr(s1, ch); | 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置 |
strstr(s1, s2); | 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置 |
C++中的String类
#include #include using namespace std; int main () { string str1 = "Hello"; string str2 = "World"; string str3; int len ; // 复制 str1 到 str3 str3 = str1; cout << "str3 : " << str3 << endl; // 连接 str1 和 str2 str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // 连接后,str3 的总长度 len = str3.size(); cout << "str3.size() : " << len << endl; return 0; }
- type *var-name; - int *ip; /* 一个整型的指针 */ - double *dp; /* 一个 double 型的指针 */ - float *fp; /* 一个浮点型的指针 */ - char *ch; /* 一个字符型的指针 */
#include using namespace std; int main () { int var = 20; // 实际变量的声明 int *ip; // 指针变量的声明 ip = &var; // 在指针变量中存储 var 的地址 cout << "Value of var variable: "; cout << var << endl; // 输出在指针变量中存储的地址 cout << "Address stored in ip variable: "; cout << ip << endl; // 访问指针中地址的值 cout << "Value of *ip variable: "; cout << *ip << endl; return 0; }
概念 | 描述 |
---|---|
C++ Null 指针 | C++ 支持空指针。NULL指针是一个定义在标准库中的值为零的常量。 |
C++ 指针的算术运算 | 可以对指针进行四种算术运算:++、–、+、- |
C++ 指针 vs 数组 | 指针和数组之间有着密切的关系。 |
C++ 指针数组 | 可以定义用来存储指针的数组。 |
C++ 指向指针的指针 | C++ 允许指向指针的指针。 |
C++ 传递指针给函数 | 通过引用或地址传递参数,使传递的参数在调用函数中被改变 |
C++ 从函数返回指针 | C++ 允许函数返回指针到局部变量、静态变量和动态内存分配 |
int i = 17; int& r = i; double& s = d;
- & 读作引用 - 第一个声明可以读作 "r 是一个初始化为 i 的整型引用" - 第二个声明可以读作 "s 是一个初始化为 d 的 double 型引用"
#include using namespace std; int main() { // 声明简单的变量 int i; double d; // 声明引用变量 int& r = i; double& s = d; i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; s -= 1; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; getchar(); return 0; }
头文件 | 函数和描述 |
---|---|
< iostream > | 该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流 |
< iomanip > | 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务 |
< fstream > | 该文件为用户控制的文件处理声明服务 |
char str[] = "Hello C++"; cout << "Value of str is : " << str << endl;
cin >> name; cin >> name >> age; //相当于 cin >> name; cin >> age;
cerr << "Error message : " << str << endl;
clog << "Error message : " << str << endl;
struct type_name { member_type1 member_name1; member_type2 member_name2; member_type3 member_name3; . . } object_names; //例: struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } book;
#include #include using namespace std; // 声明一个结构体类型 Books struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { Books Book1; // 定义结构体类型 Books 的变量 Book1 Books Book2; // 定义结构体类型 Books 的变量 Book2 // Book1 详述 strcpy( Book1.title, "C++ 教程"); strcpy( Book1.author, "Runoob"); strcpy( Book1.subject, "编程语言"); Book1.book_id = 12345; // Book2 详述 strcpy( Book2.title, "CSS 教程"); strcpy( Book2.author, "Runoob"); strcpy( Book2.subject, "前端技术"); Book2.book_id = 12346; // 输出 Book1 信息 cout << "第一本书标题 : " << Book1.title <