C++ 基础语法
根据 bilibili黑马程序员视频 网上资料 自己理解 整理的部分资料
C++语法 第一天
1. 命名规则
- 常量定义 ,
# define N;
,constant int N;
; - 标识符命名规则
① 不能是关键字;
② 只能由字母、数字、下划线组成;
③ 第一个字符必须是字母或下划线;
④ 区分大小写。
2. 数据类型
- 整型
①short
短整型 2字节;
②int
整型 4字节;
③long
长整型 4字节,特殊64位 8字节;
④long long
长长整型 8字节。 sizeof
关键字
① 语法sizeof(数据类型/变量)
;
② 整型大小比较:short < int <= long <=long long
- 浮点型
①float
单精度 4字节;
②double
双精度 8;
默认输出一个小数,会显示6为有效数字。 - 字符型
①char
1字节, 用单引号,且只有一个字符;
② ASCII码 a-97,A-65。 - 转义字符
换行符\n
,反斜杠\\
,水平制表符\t
-输出整齐 - 字符串型
语法:string c = "Hello World";
注意:使用时,添加头文件#include<string>
- 布尔类型
bool
占1字节,true-1,false-0;
3. 基础结构
- 输入 输出
char c; cin >> a; //输入
count << c <<endl; //输出
- 运算符
基本运算符:+ - * /
取模(取余):%
递增递减:++
,--
,前置递增++a
-变量先+1,后进行表达式运算;后置递增a++
-先进行表达式运算,后变量+1。
赋值运算符:+= -= *= /= %=
比较运算符:== != < > <= >=
逻辑运算符:与&&
或||
非!
- 程序流程结构 注意事项
continue
跳出本次循环,执行下一次循环;
break
跳出循环体;
goto
跳转,打乱程序运行顺序,不便阅读 - 函数
值传递:函数调用时,将实参值传递给形参,
形参值属于局部变量,不影响实参。
函数可以声明多次,但只能定义一次。
分文件编写:创建.h文件,其他文件include 即可。 - 指针
空指针:指针指向内存中编号为0的空间,用于初始化指针变量。注意:空指针指向的内存不能访问。int* p = NULL;
野指针:指向非法的地址空间,不能访问
取地址符:&,解引用符:*,int* p = &a;
const既可以修饰指针,又能修饰常量,const紧跟着的是指针就是常量指针,是常量就是指针常量。其中指针所占空间 4字节。
int a = 10, b = 10, c = 10;
const int* p = &a; //常量指针:指针指向的值不可以修改,指向可以改
int* const q = &b; //指针常量:指针的指向不可以修改,指向的值可以改
const int* const t = &c; //
int arr[10];
int* p = arr; //指针指向数组的首地址,不用&
string* p = "Hello World";
//案例:参考https://blog.csdn.net/weixin_39640298/article/details/84900326
string* p = NULL;
*p = "Hello world"; //运行之后程序崩溃,原因:空指针不允许赋值操作
- 值传递与地址传递
值传递:函数将实参传递给形参,形参是实参的拷贝份,但是地址不同,形参值改变时不影响实参。
地址传递:通过指针传递变量的值,改变实参值。
浅拷贝与深拷贝的区别 - 结构体
结构体允许用户自定义数据类型,是基本类型的集合体。
语法:struct 结构体名 {成员列表}。注意:创建结构体时,struct不能省略;创建结构体变量时,struct可以省略。
const:结构体中利用指针传递时,使用const防止误操作。
struct student {
string name;
int age;
char gender;
} s3;
struct student s1; //结构体变量的定义
s1.name = "jhon"; s1.age = 18; s1.gender = 'M'; //1.通过s1属性赋值
struct student s2 = {"jhon",18,'F'}; //2.定义时用{}按照结构体变量顺序直接赋值
s3.name = "jhon"; s3.age = 18; s3.gender = 'M';//3. 结构体定义的时创建结构体变量
//创建结构体数组
struct student stuArr[3] ={ {"jhon",18,'F'}, {"jhon",18,'F'},{"jhon",18,'F'}};
//创建结构体指针
student* p = &s1;
p->name, p->age, p->gender; //通过->符号访问
//结构体嵌套结构体
struct teacher {
string name;
int id;
struct student stu;
}
teacher t;
t.name = "Lily"; t.id = 10011; //本结构体变量幅值
t.stu.name = "jhon"; t.stu.age = 18; t.stu.gender = 'M'; //嵌套结构体变量幅值
待续 ing
第二篇:C++学习整理笔记 第二天