当前位置: 首页 > web >正文

C++基础学习笔记

文章目录

  • 1. 基本数据类型
  • 2. 变量和常量
  • 3. 标识符和关键字
  • 4. switch语句
  • 5. 跳转语句 goto
  • 6. 引用
  • 7. 数组
  • 8. 命名空间
  • 9. 类
  • 10. 函数分文件定定义
  • 10. 指针
  • 11. 结构体

最好有一定C语言基础,仅仅记录小编一些忘记的知识点或没有学习到的知识点

1. 基本数据类型

整形数据类型包括short、int、long、long long,它们的大小分别为2、4、4、8字节;浮点型类型有float、double,它们的大小分别为4、8字节(区别在于小数点后精确点的个数);字符型只有char,大小为1字节;布尔类型只有bool,大小为1字节。

2. 变量和常量

变量的定义为在程序能够变化的一个量;

#include <iostream>
using namespace std;int main() {int a;a = 10;cout << a << endl;a = 20;cout << a << endl;system("pause");return 0;
}

常量的定义为在程序中不可以变化的量,并且初始化的时候必须赋值。下述代码语句会报错或者说通不过编译。
在这里插入图片描述

3. 标识符和关键字

标识符只能由字母、数字、下划线、美元符号组成,且不能以数字开头,另外不能和关键字(比如if、while等)相同。常用的关键词如下:
在这里插入图片描述

4. switch语句

代码如下:

#include <iostream>
using namespace std;int main() {int a;cout <<"输入成绩:"<<endl;cin >> a;switch (a/10) {case 10:case 9:cout << "优秀。。" << endl;break;case 8:cout << "良好。。" << endl;break;case 7:case 6:cout << "及格。。" << endl;break;default:cout << "不及格。。" << endl;}system("pause");return 0;
}

5. 跳转语句 goto

在这里插入图片描述

6. 引用

用来定义别名,用于指向一个已经存在的变量或对象。引用定义只能在声明时进行初始化,也就是引用必须被初始化为某个对象或者变量的别名。

定义:
引用类型的标识符 &别名 = 变量名

参考代码如下:

#include <iostream>
using namespace std;int main() {int a = 10;int& b = a;b = 20;cout << a << endl;system("pause");return 0;
}

在这里插入图片描述

7. 数组

int arr[10];
cout << arr[9] << endl;
// 没有赋值,打印的结果为未知数
int arr2[10] = {0};
cout << arr2[9] << endl;
// 打印0,因为对数组arr2已经赋值,虽然只赋值了arr[0],但是其他9个元素值默认为0了。

8. 命名空间

#include <iostream>
using namespace std;namespace LIUZE
{int age = 20;void fun() {cout << "age=" << age << endl;}namespace PLAY{void fun() {cout << "play" << endl;}}
}int main() {LIUZE::fun();LIUZE::PLAY::fun();system("pause");return 0;
}

9. 类

class Student
{
private:int age;
public:char name[20];int id;void setAge(int age1){age = age1;}int getAge(){return age;}void play(){cout << "play game" << endl;}
};int main() {Student s;strcpy(s.name, "张三");cout << s.name << endl;s.setAge(23);cout << s.getAge() << endl;system("pause");return 0;
}

10. 函数分文件定定义

  1. 创建 .h 的后缀名的头文件
  2. 创建 .cpp 的后缀名的源文件
  3. 在头文件中写函数的声明
  4. 在源文件中写函数的定义

如下:
在这里插入图片描述
abc.h

#include <iostream>
using namespace std;void print(int);

abc.cpp

#include "abc.h"void print(int a) 
{cout << "a=" << a << endl;
}

10. 指针

指针的大小,在32位操作系统下,指针的大小为4个字节;在64位操作系统下,指针的大小为8个字节。任何类型的指针大小都一致。
在这里插入图片描述
const修饰的指针:指针的指向可以修改,但是指针指向的值不可以修改。
在这里插入图片描述
指针常量:指针的指向不可以修改,但是指针指向的值可以修改。
在这里插入图片描述
const修饰的指针常量:指针的指向不可以修改,且指针指向的值也不可以修改。
在这里插入图片描述

11. 结构体

#include <iostream>
#include <string>
using namespace std;struct Student 
{int age;string name;
};int main() 
{	Student a;a.name = "张三";a.age = 20;cout << "age:" << a.name << "age:" << a.age << endl;system("pause");return 0;
}

在C++中初始化结构体中可以省略struct关键字,但是定义结构体时关键字struct不可以省略,在C语言中会使用typedef关键字,从而避免每次初始化结构体时都需要使用到struct关键字。
结构体数组初始化如下:

int main() 
{	Student arr[2] = {{18,"张三"},{20,"李四"}};for (int i = 0; i < 2; i++){cout << "age=" << arr[i].age<< " name=" << arr[i].name << endl;}system("pause");return 0;
}

结构体指针,需要用到箭头访问结构体中的变量,当然也可以使用传统方式访问结构体中的变量,如下:

int main() 
{	Student a = { 18,"张三" };Student* p = &a;cout << (*p).name << endl;cout << p->name << endl;system("pause");return 0;
}
http://www.xdnf.cn/news/17392.html

相关文章:

  • 谈谈SQL计算存储引擎中的索引和计算
  • 数据结构5-哈希表
  • AI搜索引擎——DeepSeek崛起 || #AIcoding·八月创作之星挑战赛# || 简单版
  • SwiftUI中的键盘快捷键、初始页面控制及网络权限管理解析
  • 安装部署K8S集群环境(实测有效版本)
  • SpringCloud基础
  • sqlite的sql语法与技术架构研究
  • 专题二_滑动窗口_将x减到0的最小操作数
  • 强遮挡场景误检率↓79%!陌讯多模态融合算法在充电桩占位检测的实战优化
  • 等保测评-Nginx中间件
  • 计算机毕业设计java疫情防控形势下的高校食堂订餐管理系统 高校食堂订餐管理系统在疫情防控背景下的设计与实现 疫情防控期间高校食堂线上订餐管理平台
  • 【感知机】感知机(perceptron)学习算法的对偶形式
  • 专题二_滑动窗口_长度最小的子数组
  • OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!
  • AI代码审查大文档处理技术实践
  • Express框架
  • 机器学习之随机森林(Random Forest)实战案例
  • 一种基于CEEMDAN-小波阈值联合降噪-快速谱峭度(FSK)/基尼谱Ginigram/Autogram的故障诊断 Matlab
  • 动手学深度学习(pytorch版):第一章节——引言
  • Linux---第三天---权限
  • Ethereum: 像Uniswap V3贡献者一样开发,克隆、编译与测试v3-core
  • 二叉树算法之【中序遍历】
  • 最新教程 | CentOS 7 内网环境 Nginx + ECharts 页面离线部署手册(RPM 安装方式)
  • Kotlin中String的==相等比较符
  • TCP 如何保证可靠性
  • 深入解析嵌套事务:原理与应用
  • uniapp vue3中使用pinia 和 pinia持久化(没有使用ts)
  • Java NIO 核心原理与秋招高频面试题解析
  • Gitee上免费搭建博客
  • 嵌入式学习---在 Linux 下的 C 语言学习 Day10