C++ NUM3

 
C++存储类
auto存储类  声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符。  如:auto f=3.14;  
register存储类   定义存储在寄存器中而不是 RAM 中的局部变量。
static 存储类   使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
extern存储类    
mutable存储类   说明符声明的变量仅可在它在其上创建的线程上访问。
&&与 ||或  !非
C += A 相当于 C = C + A
C -= A 相当于 C = C - A
C *= A 相当于 C = C * A
C /= A 相当于 C = C / A
C %= A 相当于 C = C % A 
C <<= 2 等同于 C = C << 2    https://www.cnblogs.com/shrimp-can/p/5145351.html
C >>= 2 等同于 C = C >> 2    c++中的运算符异或^,与&,或|_qq_906638174的博客-CSDN博客_c++异或符号
C &= 2 等同于 C = C & 2 与 
C ^= 2 等同于 C = C ^ 2 异或 
C |= 2 等同于 C = C | 2 或
 
sizeofz运算符返回变量的大小 
Condition ? X : Y    如果 Condition 为真 ? 则值为 X : 否则值为 Y。
使用逗号运算符是为了把几个表达式放在一起。整个逗号表达式的值为系列中最后一个表达式的值。
.(点)运算符和 ->(箭头)运算符用于引用类、结构和共用体的成员。
下面的代码把值 "zara" 赋给对象 emp 的 first_name 成员:
strcpy(emp.first_name, "zara");
如果 p_emp 是一个指针,指向类型为 Employee 的对象,则要把值 "zara" 赋给对象 emp 的 first_name 成员,需要编写如下代码:
strcpy(p_emp->first_name, "zara");
Cast 强制转换运算符 int(2.2000) 将返回 2
&指针运算符,返回变量的地址 &a; 将给出变量的实际地址
*指针运算符,指向一个变量 *var; 将指向变量 var


c++循坏:
while循环:
while(condition)
{
   statement(s);
}

for循坏:
for ( init; condition; increment )
{
   statement(s);

toupper()函数:将小写字母转换为大写字母

先定义数组 for(数组类型 变量:数组)

do..while循环:
do
{
   statement(s);

}while( condition );

嵌套循环:一个或多个循环

循坏控制语句:
break语句:当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。它可用于终止 switch 语句中的一个 case 
continue语句: continue 会跳过当前循环中的代码,强迫开始下一次循环。
goto语句:允许把控制无条件转移到同一函数内的被标记的语句。作用是退出深嵌套,消除 goto 会导致一些额外的测试被执行。一个简单的 break 语句在这里不会起到作用,因为它只会使程序退出最内层循环。 
goto label;
..
.
label: statement;
label是识别被标记语句的标志符 
例如:
#include <iostream>
using namespace std;
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   LOOP:do
   {
       if( a == 15)
       {
          // 跳过迭代
          a = a + 1;
          goto LOOP;
       }
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

按 Ctrl + C 键终止一个无限循环。

C++判断:
if 语句    一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if...else 语句    一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句    您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句    一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句    您可以在一个 switch 语句内使用另一个 switch 语句。


? : 运算符 Exp1 ? Exp2 : Exp3;
? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。


C++函数:
函数声明告诉编译器函数的名称、返回类型和参数。
函数定义提供了函数的实际主体。
C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
定义函数:
return_type function_name( parameter list )
{
   body of the function
}
函数声明:
return_type function_name( parameter list );
int max(int, int);这也是有效声明

调用函数:
例如:
#include <iostream>
using namespace std;
 
// 函数声明
int max(int num1, int num2);
 
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int ret;
 
   // 调用函数来获取最大值
   ret = max(a, b);
 
   cout << "Max value is : " << ret << endl;
 
   return 0;
}
 
// 函数返回两个数中较大的那个数
int max(int num1, int num2) 
{
   // 局部变量声明
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

函数参数:
形式参数:如果函数要使用参数,则必须声明接受参数值的变量
形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。
三种向函数传递参数的方式:
注意!!传值调用:把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数
注意!!指针调用:把参数的地址复制给形式参数,在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 
例如:
#include <iostream>
using namespace std;
// 函数声明
void swap(int *x, int *y);
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   cout << "交换前,a 的值:" << a << endl;
   cout << "交换前,b 的值:" << b << endl;
   /* 调用函数来交换值
    * &a 表示指向 a 的指针,即变量 a 的地址 
    * &b 表示指向 b 的指针,即变量 b 的地址 
    */
   swap(&a, &b);
   cout << "交换后,a 的值:" << a << endl;
   cout << "交换后,b 的值:" << b << endl;
   return 0;

引用调用: 把引用的地址复制给形式参数,在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 
例如:
#include <iostream>
using namespace std;
// 函数声明
void swap(int &x, int &y);
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   cout << "交换前,a 的值:" << a << endl;
   cout << "交换前,b 的值:" << b << endl;
   /* 调用函数来交换值 */
   swap(a, b);
   cout << "交换后,a 的值:" << a << endl;
   cout << "交换后,b 的值:" << b << endl;
   return 0;

// 函数定义
void swap(int &x, int &y)
{
   int temp;
   temp = x; /* 保存地址 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 x 赋值给 y  */
   return;
}
 
参数的默认值:当您定义一个函数,您可以为参数列表中后边的每一个参数指定默认值。当调用函数时,如果实际参数的值留空,则使用这个默认值。调用函数时,如果未传递参数的值,则会使用默认值,如果指定了值,则会忽略默认值,使用传递的值。
Lambda函数与表达式:Lambda 表达式可以像对象一样使用,比如可以将它们赋给变量和作为参数传递,还可以像函数一样对其求值。
[capture](parameters)->return-type{body}
如:
[](int x,int y){
    return x<y;

无返回值:[capture](parameters){body}   如:[]{++global_x;} 
[](int x, int y) -> int { int z = x + y; return z + x; }
对于[=]或[&]的形式,lambda 表达式可以直接使用 this 指针。但是,对于[]的形式,如果要使用 this 指针,必须显式传入:
[this]() { this->someFunc(); }();
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值