大家好!我要学习C++语言,目前主要是看 菜鸟教程。其中这篇文章选取了 C++教程 的部分重点内容,后面会继续更新 C++面向对象、C++高级教程、C++资源库 的学习笔记。
1、概念
1.1 g++应用说明
程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库 而不用 C 标准库。
1.2 变量作用域
局部变量:在函数或一个代码块内部声明的变量。定义时需要自行对其初始化。
形式参数:在函数参数的定义中声明的变量。
全局变量:在所有函数外部声明的变量。定义时系统自动初始化。
2、语法
2.1 typedef 声明
作用:使用 typedef 为一个已有的类型取一个新的名字。
举例:typedef longlong ll;
2.2 定义常量
使用 #define 预处理器。
#define identifier value
使用 const 关键字。
const type variable = value;
2.3 C++ 存储类
类型 说明
auto 声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符。
register 只用于需要快速访问的变量,比如计数器。用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 ‘&’ 运算符(因为它没有内存位置)。
static 在函数调用之间保持局部变量的值。static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
extern 用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。
mutable 仅适用于类的对象
thread_local (C++11) 声明的变量仅可在它在其上创建的线程上访问。 变量在创建线程时创建,并在销毁线程时销毁。 每个线程都有其自己的变量副本。
从 C++ 17 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。
2.4 杂项运算符
运算符 描述
sizeof sizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
Condition ? X : Y 条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
, 逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。
.(点)和 ->(箭头) 成员运算符用于引用类、结构和共用体的成员。
Cast 强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
& 指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。
* 指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。
2.5 函数
定义函数
return_type function_name( parameter list )
{
body of the function;
}
1
2
3
4
函数声明
return_type function_name( parameter list );
如:int max(int num1, int num2); 或
int max(int, int);
1
2
3
4
函数参数
当调用函数时,有三种向函数传递参数的方式:
调用类型 描述
传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
指针调用 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
引用调用 该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
默认情况下,C++ 使用传值调用来传递参数。一般来说,这意味着函数内的代码不能改变用于调用函数的参数。
2.6 引用
引用通常用于函数参数列表和函数返回值。
概念 描述
把引用作为参数 C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。
把引用作为返回值 可以从 C++ 函数中返回引用,就像返回其他数据类型一样。
2.7 结构体
定义
struct type_name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
. .
} object_names;
1
2
3
4
5
6
使用成员访问运算符 . 访问结构成员
结构作为函数参数
指向结构体的指针
3、其它,未完待续
无限循环的表示:for(;;)
————————————————
版权声明:本文为CSDN博主「努力奔跑的追梦人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kangjingqi/article/details/104106928