C++教程 学习笔记

C++教程 学习笔记

大家好!我要学习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 杂项运算符

运算符描述
sizeofsizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
Condition ? X : Y条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
,逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值
.(点)和 ->(箭头)成员运算符用于引用类、结构和共用体的成员
Cast强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
&指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。
*指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。

2.5 函数

  1. 定义函数
return_type function_name( parameter list ) 
{
	body of the function; 
}
  1. 函数声明
return_type function_name( parameter list );

如:int max(int num1, int num2);int max(int, int);
  1. 函数参数
  • 当调用函数时,有三种向函数传递参数的方式:
调用类型描述
传值调用该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
指针调用该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
引用调用该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
  • 默认情况下,C++ 使用传值调用来传递参数。一般来说,这意味着函数内的代码不能改变用于调用函数的参数。

2.6 引用

  • 引用通常用于函数参数列表和函数返回值。
概念描述
把引用作为参数C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。
把引用作为返回值可以从 C++ 函数中返回引用,就像返回其他数据类型一样。

2.7 结构体

  1. 定义
struct type_name { 
member_type1 member_name1; 
member_type2 member_name2; 
member_type3 member_name3; 
. . 
} object_names;
  1. 使用成员访问运算符 . 访问结构成员
  2. 结构作为函数参数
  3. 指向结构体的指针

3、其它,未完待续

  1. 无限循环的表示:for(;;)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值