当前位置:   article > 正文

c++学习笔记——基本语法_c++语法学习

c++语法学习

一、c++基本语法

对象:具有状态和行为。如一只具体的狗,具有什么样的颜色名称和行为。对象是类的实例。

类:描述对象行为和状态的模板,是一个大分类,由类可以创建很多对象。

方法:一个方法表示一种行为,一个行为可以包含多个方法。

即时变量:每个对象都有其独特的即时变量。对象的状态由即时变量的值创建

三元字符组:用于表示另一个字符的单个字符序列,以两个问号开头(不重要)

数据类型:bool,char,int,float,double,void,wchar_t(=short int),enum(枚举类型),type*(指向类型为type对象的指针),type[]或type[size](数组),struct(结构体,包含多个不同类型成员的结构),class,union(共用体类型,在相同的内存位置存储不同的数据类型。)

修饰符:signed(有符号,可以存储负数),unsigned(无符号),short,long

枚举类型enumeration:是c++的一种派生数据类型,由用户定义的若干枚举常量的集合。用于定义一组命名的整数常量。

类型转换:静态转换,动态转换,常量转换和重新解释转换。

静态转换 Static Cast:将一种数据类型强制转换为另一种。int i =10;  float f = static_cast<float>(i);

动态转换Dynamic Cast:用于将一个基类指针或引用转换为派生类指针或引用。在运行事进行类型检查,不能进行转换则返回空指针或引发异常。

常量转换Const Cast:将const对象转换为非const对象,不能改变对象类型。const int i = 10;  int& r = const_cast<int&>(i);

重新解释转换Reinterpret Cast:将一个数据类型重新解释为另一个数据类型的值。int i =10;  float f = reinterpret_cast<float&>(i);(不太理解这个重新解释的意思,跟强制转换有什么区别)

在内部作用域中声明的变量与外部作用域中的变量同名,则内部作用域中的变量将覆盖外部作用域中的变量

0x表示十六进制,0表示八进制,不带前缀表示十进制

static定义静态变量,作用域仅限于当前文件和函数内,不会被其他文件和函数访问

register 用于定义寄存器变量,表示该变量被频繁使用,可以存储在CPU的寄存器内,提高程序的运行效率

运算符%:取模运算符,整除后的余数

&&:与运算,两个都为true时得到ture;||:或,存在true得到true;!:非

^:异或,一样时为0;<<:左移;>>:右移

sizeof:获取数据类型大小;condition?X:Y:如果condition为真,则值为X,否则为Y(?符号可以用来代替if...else);Cast:强制转换;&:返回变量实际地址;*:指向一个变量(指针)

内置的数学函数,引用头文件<cmath>

生成随机数:rand(),返回一个伪随机数,生成随机数之前必须先调用srand()函数,产生随机数种子,不然会生成一样的随机数

c++的i/o操作发生在流中,字节流从设备流向内存叫输入操作,从内存流向设备叫输出操作。

输出 cout << ...,出入cin >> name >> age

使用cerr流显示错误信息,其他日志消息使用clog流来输出,使用方法和cout一样的

二、代码熟悉

抬头:# include <iostream> using namespace std;

cout << “hello word” << endl:打印hello word并换行

c++可以使用char和string来存储字符串,string更方便,可以当作数字来进行相加(#include <cstring> )

extern声明变量相当于一个加强版全局变量,在任何地方声明一个变量,可以在所有文件中使用

类的创建和作用域(这里没有建一个对象,而是使用类名和作用域解析运算符::来访问变量)

定义常量的两种方式:#define LENGTH 10      const type variable = value;

数组:double balance[ ] = {1000.0, 2.0, 3.4, 7.0, 50.0};

指向数组的指针:double *p = balance;cout << *(p + i) << endl;(得到指定位置的数字)

三、类的存储

register 存储类:定义存储在寄存器而不是RAM中的局部变量(不是很理解)

static 存储类:在程序的生命周期内保持局部变量的存在,而不需要在每次进入和离开作用域时进行创建和销毁,使用static修饰局部变量可以在函数调用之间保持局部变量的值。修饰全局变量时,使作用域限制在声明它的文件内。(意思就是static修饰的变量在这个文件内不会消失)

extern 存储类:用于在另一个文件中声明一个全局变量或函数,通常用于有两个或多个文件共享相同的全局变量或函数的时候。

四、指针和引用

区分ip和*ip,ip输出的是地址,*ip输出的是值

**ptr:指向指针的指针

c++从函数返回指针:

引用&和指针*的区别

使用引用来实现引用调用函数和把引用作为返回值

五、数据结构

格式:

访问结构成员使用(.)object_name.member_name1

指向结构的指针: struct Books *struct_pointer;  

查找结构变量的地址:struct_pointer = &Book1;

使用指向该结构的指针访问结构的成员,->:struct_pointer->title;

总结:结构体使用.,指向结构的指针使用->,修改指向结构体的指针时,结构体的数据也会改变创建使用结构的指针时需要&指向。

typeof关键字:可以直接使用Books来定义Books类型的变量,而不用再使用struct关键字(不是很理解区别)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/986262
推荐阅读
相关标签
  

闽ICP备14008679号