C++学习整理笔记 第一天

C++ 基础语法

根据 bilibili黑马程序员视频 网上资料 自己理解 整理的部分资料

C++语法 第一天

1. 命名规则

  1. 常量定义# define N;constant int N;
  2. 标识符命名规则
    ① 不能是关键字;
    ② 只能由字母、数字、下划线组成;
    ③ 第一个字符必须是字母或下划线;
    ④ 区分大小写。

2. 数据类型

  1. 整型
    short 短整型 2字节;
    int 整型 4字节;
    long 长整型 4字节,特殊64位 8字节;
    long long 长长整型 8字节。
  2. sizeof 关键字
    ① 语法 sizeof(数据类型/变量)
    ② 整型大小比较:short < int <= long <=long long
  3. 浮点型
    float 单精度 4字节;
    double 双精度 8;
    默认输出一个小数,会显示6为有效数字。
  4. 字符型
    char 1字节, 用单引号,且只有一个字符;
    ② ASCII码 a-97,A-65。
  5. 转义字符
    换行符\n,反斜杠\\,水平制表符 \t -输出整齐
  6. 字符串型
    语法:string c = "Hello World"; 注意:使用时,添加头文件#include<string>
  7. 布尔类型
    bool 占1字节,true-1,false-0;

3. 基础结构

  1. 输入 输出
 char c; cin >> a; //输入
 count << c <<endl; //输出
  1. 运算符
    基本运算符:+ - * /
    取模(取余):%
    递增递减:++--,前置递增++a -变量先+1,后进行表达式运算;后置递增a++ -先进行表达式运算,后变量+1。
    赋值运算符:+= -= *= /= %=
    比较运算符:== != < > <= >=
    逻辑运算符:与 &&||
  2. 程序流程结构 注意事项
    continue 跳出本次循环,执行下一次循环;
    break 跳出循环体;
    goto 跳转,打乱程序运行顺序,不便阅读
  3. 函数
    值传递:函数调用时,将实参值传递给形参,
    形参值属于局部变量,不影响实参。
    函数可以声明多次,但只能定义一次。
    分文件编写:创建.h文件,其他文件include 即可。
  4. 指针
    空指针:指针指向内存中编号为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"; //运行之后程序崩溃,原因:空指针不允许赋值操作
  1. 值传递与地址传递
    值传递:函数将实参传递给形参,形参是实参的拷贝份,但是地址不同,形参值改变时不影响实参。
    地址传递:通过指针传递变量的值,改变实参值。
    浅拷贝与深拷贝的区别
  2. 结构体
    结构体允许用户自定义数据类型,是基本类型的集合体。
    语法: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++学习整理笔记 第二天

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值