函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。

阅读全文 »

循环语句

  • while 循环
  • for 循环
  • do…while 循环

break 语句 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。

while循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main ()
{
// 局部变量声明
int a = 10;

// while 循环执行
while( a < 20 )
{
cout << "a 的值:" << a << endl;
a++;
}

return 0;
}
阅读全文 »

强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。

大多数的 C++ 编译器都支持大部分通用的强制转换运算符:

1
(type) expression 

其中,type 是转换后的数据类型。

C++强制转换运算符

c++ 有四种显示类型转换,分别为 static_cast, dynamic_cast, const_cast, reinterpret_cast

阅读全文 »

.(点)运算符和 ->(箭头)运算符用于引用类、结构和共用体的成员。

点运算符应用于实际的对象。箭头运算符与一个指向对象的指针一起使用。

实例:

1
2
3
4
struct Employee {
char first_name[16];
int age;
} emp;

(.)点运算符

下面的代码把值 zara 赋给对象 empfirst_name 成员:

1
strcpy(emp.first_name, "zara");

(->)箭头运算符

如果 p_emp 是一个指针,指向类型为 Employee 的对象,则要把值 zara 赋给对象 p_empfirst_name 成员,需要编写如下代码:

1
strcpy(p_emp->first_name, "zara");

sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小。

sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。

使用 sizeof 的语法如下:

1
sizeof (data type)

其中,data type 是要计算大小的数据类型,包括类、结构、共用体和其他用户自定义数据类型。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;

int main()
{
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of short int : " << sizeof(short int) << endl;
cout << "Size of long int : " << sizeof(long int) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
return 0;
}

结果,结果会根据使用的机器而不同:

1
2
3
4
5
6
7
Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4

C++ sizeof 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 杂项运算符
阅读全文 »

存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。

C++ 程序中可用的存储类:

  • auto
  • register
  • static
  • extern
  • mutable
  • thread_local (C++11)

从 C++ 17 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。

阅读全文 »

C++ 允许在 charintdouble 数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。

下面列出了数据类型修饰符:

  • signed
  • unsigned
  • long
  • short

修饰符 signedunsignedlongshort 可应用于整型,signedunsigned 可应用于字符型,long 可应用于双精度型。

修饰符 signedunsigned 也可以作为 longshort 修饰符的前缀。例如:unsigned long int

C++ 允许使用速记符号来声明无符号短整数或无符号长整数。可以不写 int,只写单词 unsignedshortunsignedlongint 是隐含的。

阅读全文 »

Bjarne 在他的 The C++ Programming Language 里面给出过一个助记的方法:把一个声明从右向左读

1
2
3
4
5
6
7
char * const cp; ( * 读成 pointer to ) 
cp is a const pointer to char

const char * p;
p is a pointer to const char;

char const * p;

同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。

C++标准规定,const关键字放在类型或变量名之前等价的。

阅读全文 »

常量,又叫做字面量,是固定值,在程序执行期间不会改变。

常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。

阅读全文 »
0%