【C++入门学习:基本语法】为了缩短学习周期,只记录部分不懂的语法

一、程序结构

/*
	#include 头文件
	using namespace std;

	定义类{定义变量、声明方法}
	定义方法{普通方法、main方法}
*/

#include <iostream>
 
using namespace std;
 
class Box
{
    
    
   public:
      double length;   // 定义变量
      double breadth;  
      double height;   
      
      double Box::get(void){
    
    		//	函数定义:可以在类内部定义,也可以在类外部定义
    		return length * breadth * height;
	  }
 
	  void Box::set( double len, double bre, double hei){
    
    
    		length = len;
    		breadth = bre;
    		height = hei;
	  }
};


int main( )
{
    
    
   Box Box1;        // 声明 Box1,类型为 Box
   Box Box2;        // 声明 Box2,类型为 Box
   Box Box3;        // 声明 Box3,类型为 Box
   double volume = 0.0;     // 用于存储体积
 
   // box 1 详述
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;
 
   // box 2 详述
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;
 
   // box 1 的体积
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Box1 的体积:" << volume <<endl;
 
   // box 2 的体积
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Box2 的体积:" << volume <<endl;
 
 
   // box 3 详述
   Box3.set(16.0, 8.0, 12.0); 
   volume = Box3.get(); 
   cout << "Box3 的体积:" << volume <<endl;
   return 0;
}

二、定义变量和声明变量

下面代码中,语句 extern int var;表示 var 在别的文件中已经定义,提示编译器遇到此变量时在其它模块中寻找其定义。语句 extern int ble = 10;表示定义了变量 ble,这一点需要注意。
注意:即使是 extern ,如果给变量赋值了,就是定义了。

extern int var; // 声明
extern int ble =10; // 定义
typedef int INT; // 声明
struct Node; // 声明
int value ; //声明 + 定义,因为C++会为value变量赋默认值

三、变量作用域

局部作用域:在函数内部声明的变量具有局部作用域,它们只能在函数内部访问。
全局作用域:在所有函数和代码块之外声明的变量具有全局作用域,它们可以被程序中的任何函数访问。
块作用域:在代码块内部声明的变量具有块作用域,它们只能在代码块内部访问。
类作用域:在类内部声明的变量具有类作用域,它们可以被类的所有成员函数访问。

注意:如果在内部作用域中声明的变量与外部作用域中的变量同名,则内部作用域中的变量将覆盖外部作用域中的变量。

#include <iostream>
using namespace std;

int a = 20;		//全局作用域变量

class MyClass {
    
    
public:
    static int class_var;  // 类作用域变量
};

int main() {
    
    
	int g = 10;		// 局部作用域变量
	{
    
    
        int a = 20;  	// 块作用域变量
    }
    return 0;
}

四、定义常量

#define LENGTH 10  	// define方式定义
const int  LENGTH = 10;		// const方式定义

五、类型限定符号

类型限定符提供了变量的额外信息,用于在定义变量或函数时改变他们默认行为的关键字
在这里插入图片描述

// const 实例
const int NUM = 10; // 定义常量 NUM,其值不可修改
const int* ptr = &NUM; // 定义指向常量的指针,指针所指的值不可修改
int const* ptr2 = &NUM; // 和上面一行等价
volatile 实例
volatile int num = 20; // 定义变量 num,其值可能会在未知的时间被改变

// mutable 实例
class Example {
    
    
public:
    int get_value() const {
    
    
        return value_; // const 关键字表示该成员函数不会修改对象中的数据成员
    }
    void set_value(int value) const {
    
    
        value_ = value; // mutable 关键字允许在 const 成员函数中修改成员变量
    }
private:
    mutable int value_;
};

// static 实例
void example_function() {
    
    
    static int count = 0; // static 关键字使变量 count 存储在程序生命周期内都存在
    count++;
}

// register 实例
void example_function(register int num) {
    
    
    // register 关键字建议编译器将变量 num 存储在寄存器中
    // 以提高程序执行速度
    // 但是实际上是否会存储在寄存器中由编译器决定
}

六、存储类

存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。

auto 存储类
auto 关键字用于两种情况:声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符。

auto f=3.14;      //double
auto s("hello");  //const char*
auto z = new auto(9); // int*
auto x1 = 5, x2 = 5.0, x3='r';//错误,必须是初始化为同一类型

register 存储类
定义存储在寄存器中而不是 RAM(内存) 中的局部变量。

register int miles;

static 存储类
static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

extern 存储类
extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 ‘extern’ 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。

mutable 存储类
mutable 说明符仅适用于类的对象,这将在本教程的最后进行讲解。它允许对象的成员替代常量。也就是说,mutable 成员可以通过 const 成员函数修改。

thread_local 存储类
使用 thread_local 说明符声明的变量仅可在它在其上创建的线程上访问。 变量在创建线程时创建,并在销毁线程时销毁。 每个线程都有其自己的变量副本。

七、运算符

算法运算符
在这里插入图片描述
关系运算符
在这里插入图片描述
逻辑运算符
在这里插入图片描述
位运算符
在这里插入图片描述
赋值运算符
在这里插入图片描述

八、函数

函数声明、函数定义、函数调用

#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; 
}

函数参数
当调用函数时,有三种向函数传递参数的方式
在这里插入图片描述

九、指针与引用

//	指针
int  var = 20;   // 实际变量的声明
int  *ip;        // 指针变量的声明
ip = &var;       // 在指针变量中存储 var 的地址

//	引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。
int i = 17;
int& r = i;		// 为变量i声明引用r

十、C++ 的基本输入输出

#include <iostream>
using namespace std;
 
int main( )
{
    
    
   char name[50];
 
   cout << "请输入您的名称: ";
   cin >> name;
   cout << "您的名称是: " << name << endl;
}

猜你喜欢

转载自blog.csdn.net/m0_46638350/article/details/130302424
今日推荐