C++小小小知识
2024-11-17 21:29:49
发布于:浙江
以下是一些C++的小知识汇总:
基础数据类型
- 整型:包括
int
、short
、long
、long long
等,用于表示整数。不同类型的取值范围不同,例如int
通常在32位系统中占4个字节,取值范围为-2147483648
到2147483647
。 - 浮点型:有
float
和double
,用于表示带有小数部分的数字。float
一般占4个字节,精度相对较低;double
占8个字节,精度更高。 - 字符型:
char
类型用于存储单个字符,实际上存储的是字符的ASCII码值。例如char ch = 'A';
,ch
的值实际为65。 - 布尔型:
bool
类型只有两个取值true
和false
,用于表示逻辑值。
变量与常量
- 变量声明与初始化:在使用变量前需要先声明其类型,如
int num;
,也可以在声明时进行初始化int num = 10;
。 - 常量:使用
const
关键字定义常量,常量的值在定义后不能被修改,如const int MAX_VALUE = 100;
。
运算符
- 算术运算符:包括
+
、-
、*
、/
、%
等,用于基本的数**算。需要注意整数除法的结果是整数,会舍去小数部分。 - 关系运算符:如
>
、<
、>=
、<=
、==
、!=
,用于比较两个值的大小或是否相等,其结果为bool
类型。 - 逻辑运算符:
&&
(逻辑与)、||
(逻辑或)、!
(逻辑非),用于对逻辑值进行操作。 - 位运算符:
&
(按位与)、|
(按位或)、^
(按位异或)、~
(按位取反)、<<
(左移)、>>
(右移),可对整数的二进制位进行操作。
控制结构
- 顺序结构:程序按照语句的先后顺序依次执行。
- 选择结构:
- if语句:根据条件判断执行不同的代码块,如
if (condition) { // 执行语句 }
。 - switch语句:用于多分支选择,根据表达式的值跳转到相应的
case
分支执行,如:
- if语句:根据条件判断执行不同的代码块,如
switch (expression) {
case value1:
// 执行语句
break;
case value2:
// 执行语句
break;
default:
// 执行语句
}
- 循环结构:
- for循环:常用于已知循环次数的情况,如
for (int i = 0; i < 10; i++) { // 循环体 }
。 - while循环:在条件为真时重复执行循环体,如
while (condition) { // 循环体 }
。 - do-while循环:先执行一次循环体,然后再判断条件是否为真,若为真则继续循环,如:
- for循环:常用于已知循环次数的情况,如
do {
// 循环体
} while (condition);
函数
- 函数定义与调用:函数是一段可重复使用的代码块,通过定义函数名、参数列表和函数体来实现特定的功能。函数定义后可以在其他地方通过函数名和传递相应的参数进行调用。
- 函数参数传递:
- 值传递:将实参的值复制一份传递给形参,函数内对形参的修改不会影响实参。
- 引用传递:通过引用将实参的地址传递给形参,函数内对形参的修改会直接影响实参。
- 函数重载:在同一作用域内,可以定义多个同名函数,但参数列表不同,编译器会根据调用时传递的参数类型和数量来确定调用哪个重载函数。
数组
- 数组定义与初始化:数组是一组相同类型元素的集合,定义时需要指定元素类型和数组大小,如
int arr[5];
,也可以在定义时进行初始化int arr[5] = {1, 2, 3, 4, 5};
。 - 数组访问:通过下标来访问数组元素,下标从0开始,如
arr[0]
表示数组的第一个元素。
指针
- 指针定义与初始化:指针是一个变量,其值为另一个变量的地址。定义指针变量时需要指定指针所指向的变量类型,如
int* ptr;
,可以通过取地址运算符&
对指针进行初始化int num = 10; int* ptr = #
。 - 指针操作:可以通过指针来访问和修改其所指向变量的值,如
*ptr = 20;
会将num
的值修改为20。 - 指针与数组:数组名在一定程度上可以看作是指向数组首元素的指针,因此可以使用指针来操作数组元素。
类与对象
- 类的定义:类是一种用户自定义的数据类型,用于将数据和操作数据的方法封装在一起。类中包含变量和函数,通过
class
关键字定义,如:
class MyClass {
public:
int memberVar;
void memberFunc() {
// 函数体
}
};
- 对象创建与使用:通过类定义可以创建对象,使用对象来访问类中的变量和函数,如
MyClass obj; obj.memberVar = 10; obj.memberFunc();
。
继承
- 继承的概念:一个类可以继承另一个类的属性和方法,被继承的类称为基类或父类,继承的类称为派生类或子类。通过继承可以实现代码的复用和扩展。
- 继承方式:有
public
、protected
、private
三种继承方式,不同的继承方式会影响基类**在派生类中的访问权限。
多态
- 多态的实现:多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在C++中通过虚函数和函数重写来实现多态性。
- 虚函数:在基类中使用
virtual
关键字声明的函数,在派生类中可以重写该函数,当通过基类指针或引用调用虚函数时,会根据对象的实际类型来调用相应的重写函数。
文件操作
- 文件打开与关闭:使用
fstream
头文件中的ifstream
(用于输入文件流)、ofstream
(用于输出文件流)和fstream
(用于输入输出文件流)类来操作文件。通过open()
函数打开文件,使用完毕后通过close()
函数关闭文件。 - 文件读写:可以使用
<<
和>>
运算符以及read()
、write()
等函数来对文件进行读写操作。
模板
- 函数模板:可以定义一个通用的函数模板,根据不同的参数类型生成具体的函数实例,提高代码的复用性,如:
template<typename T>
T add(T a, T b) {
return a + b;
}
- 类模板:类似地,也可以定义类模板,根据不同的模板参数生成具体的类类型,如:
template<typename T>
class MyTemplateClass {
public:
T memberVar;
void memberFunc() {
// 函数体
}
};
以上只是C的一些基础和重要的小知识,C还有许多更深入和高级的特性及应用场景,需要不断学习和实践来深入掌握。
这里空空如也
有帮助,赞一个