C++入门详细笔记(共八章)(上)

简介: C++入门详细笔记(共八章)

本博客配套视频:黑马程序员


本博客参考博客:https://blog.csdn.net/sunshine_world/article/details/107688106


第一章 C++初识


1.1 第一个C++程序


框架


#include <iostream>    //注意没有分号,包含命名,意思是把文件iostream中的内容包含在程序中
using namespace std;   //意思是使用命名空间std,C++库中的类和函数是在std中声明的
int main()        //主函数首部
{                     //主函数开始
  system("pause");
  return 0;    //如果程序正常结束,向操作系统返回一个零值
}        //主函数结尾


书写hello world


#include <iostream>
using namespace std;
int main()
{
  cout << "hello world" << endl;
  system("pause");
  return 0;
}


hello world
请按任意键继续. . .


错误示例:单引号不行,这里不像Python


cout << 'hello world' << endl;   //错误


1.2 注释


1. 单行注释


// 注释内容


2. 多行注释


/* 注释内容  */


1.3 变量


作用:给一个指定的内存空间起名,方便操作这段内存


语法:数据类型 变量名 = 初始值;


#include <iostream>
using namespace std;
int main()
{
  //变量创建的语法:数据类型 变量名 = 变量初始值
  int a = 10;
  cout << "a=" << a << endl;
  system("pause");
  return 0;
}


a=10
请按任意键继续. . .


1.4 常量:(1)#define 宏常量、(2)const修饰的变量


作用:用于记录程序中不可更改的数据


两种定义方法:


1. #define 宏常量


#define 常量名 常量值


  • 一般定义在代码的上方,结尾不需要分号


#define Day 7    //意思就是Day以后就代表7


例:


#include <iostream>
using namespace std;
#define Day 7      // 定义在这里,主函数前面
int main()
{
  //Day = 14;  错误,Day不可以修改
  cout << "一周共有多少天:" <<Day<< endl;
  system("pause");
  return 0;
}


2. const修饰的变量


const 数据类型 常量名 = 常量值


  • 通常在变量定义前加 const,修饰该变量为常量


注意:需要分号结尾


//const修饰的变量也称为常量
const int day = 7;



#include <iostream>
using namespace std;
int main()
{
  const int day = 7;
  cout << "一周共有多少天:" << day << endl;
  system("pause");
  return 0;
}


一周共有多少天:7
请按任意键继续. . .


1.5 关键字


作用: C++中预先保留的单词(标识符


注意:在定义变量或者常量时候,不要用关键字



错误示例:int不能作为变量名


int int = 10;


注意:在给变量或者常量起名称时候,不要用C++得关键字,否则会产生歧义


1.6 标识符命名规则


作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则


  • 1.标识符不能是关键字


int int =10;   //错误示例


  • 2.标识符只能有字母,数字,下划线组成


int abc = 10;
int _abc = 20;
int _123abc = 30;


  • 3.第一个字符必须为字母或下划线,不能是数字


//int 123abc = 30;   //错误


  • 4.标识符字母区分大小写


int aaa = 40;
int AAA = 50;


建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读


第二章 数据类型



C++规定在创建一个变量或者常量时,必须要指定初相应的数据类型,否则无法给变量分配内存


2.1 整型:(1)short、(2)int、(3)long、(4)long long


作用:整形变量表示的是整数类型的数据


注意:


  • 整型数据是按二进制数形式存储


  • 在整型符号int和字符型符号char的前面,可以加修饰符signed(表示有符号)或unsigned(表示无符号)。如果指定signed,则数值以补码形式存放;如果指定为unsigned,则数值没有符号,全部二进制位都用来表示数值本身。



以下集中都能表示整型,区别在于所占用内存空间不同



一般使用int即可


#include <iostream>
using namespace std;
int main()
{
  //1.短整型(-32768~32767)
  short num1 = 32768;    // 超出了范围
  //2.整型
  int num2 = 32768;
  //3.长整型
  long num3 = 10;
  //4.长长整型
  long long num4 = 10;
  cout << num1 << endl;
  cout << num2 << endl;
  cout << num3 << endl;
  cout << num4 << endl;
  system("pause");
  return 0;
}


-32768
32768
10
10
请按任意键继续. . .


2.2 sizeof关键字


作用:统计数据类型所占内存大小


语法:sizeof(数据类型/ 变量)


#include <iostream>
using namespace std;
int main()
{
  //整型:short (2),  int (4),  long (4),  long long (8)
  //可以利用sizeof求出数据类型占用内存大小
  short num1 = 10;
  cout << "short占用的内存空间为:" << sizeof(short) << endl;
  cout << "short占用的内存空间为:" << sizeof(num1) << endl;
  int num2 = 10;
  cout << "int占用的内存空间为:" << sizeof(int) << endl;
  long num3 = 10;
  cout << "long占用的内存空间为:" << sizeof(long) << endl;
  long long num4 = 10;
  cout << "long long占用的内存空间为:" << sizeof(num4) << endl;
  system("pause");
  return 0;
}


short占用的内存空间为:2
short占用的内存空间为:2
int占用的内存空间为:4
long占用的内存空间为:4
long long占用的内存空间为:8
请按任意键继续. . .


2.3 实型(浮点型):(1)单精度float、(2)双精度double


作用: 用于表示小数


浮点型变量有两种:单精度float、双精度double


两者的区别在于表示的有效数字范围不同



1. 单精度float


默认情况下输出一个小数会显示6位有效数字


int main()
{
  //默认情况下输出一个小数会显示6位有效数字
  float f1 = 3.14f;   //通常在float后面多加一个f
  cout << "f1=" << f1 << endl;
  float f2 = 3.1415926f;
  cout << "f2=" << f2 << endl;
  system("pause");
  return 0;
}


f1=3.14
f2=3.14159
请按任意键继续. . .


2. 双精度double


#include <iostream>
using namespace std;
int main()
{
  double d1 = 3.14;
  cout << "d1=" << d1 << endl;
  double d2 = 3.1415926;
  cout << "d2=" << d2 << endl;
  system("pause");
  return 0;
}


d1=3.14
d2=3.14159
请按任意键继续. . .


例2:统计占用的内存空间


#include <iostream>
using namespace std;
int main()
{
  //统计float和double占用的内存空间
  cout << "float占用的内存空间为:" << sizeof(float) << endl;
  cout << "double占用的内存空间为:" << sizeof(double) << endl;
  system("pause");
  return 0;
}


float占用的内存空间为:4
double占用的内存空间为:8
请按任意键继续. . .


例3:科学计数法


#include <iostream>
using namespace std;
int main()
{
  //科学计数法
  float f2 = 3e2;  //3*10^2
  cout << "f2=" << f2 << endl;
  float f3 = 3e-2;  //3*10^-2
  cout << "f3=" << f3 << endl;
  system("pause");
  return 0;
}


f2=300
f3=0.03
请按任意键继续. . .


2.4 字符型


作用:可以表示单个字母的数据类型


语法:char ch = 'a';


注意1:单引号,不是双引号


char ch = 'a';
// char ch2 = "b"     双引号错误


注意2:单引号里面只能写一个字符,不能写字符串


// char ch2 = 'abcd'  单引号内只能有一个字符


  • C和C++中字符型变量只占用1个字节


  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII码放入对应的存储单元


例1:


#include <iostream>
using namespace std;
int main()
{
  cout << "char字符型变量所占用内存" << sizeof(char) << endl;
  system("pause");
  return 0;
}


char字符型变量所占用内存1
请按任意键继续. . .


例2:


比如a对应97,所以存储97


#include <iostream>
using namespace std;
int main()
{
  //a - 97
  //A - 65
  //相差32
  //(int)转化为了整型
  char ch = 'a';
  cout << (int)ch << endl;
  system("pause");
  return 0;
}


97
请按任意键继续. . .


2.5 转义字符


作用:用于表示一些不能显示出来的ASCII字符


现阶段我们常用的转义字符有: \n \\ \t



1. 换行符 \n


#include <iostream>
using namespace std;
int main()
{
  cout << "hello\nworld";
  system("pause");
  return 0;
}


hello
world请按任意键继续. . .


2. 反斜杠 \ \


#include <iostream>
using namespace std;
int main()
{
  cout << "hello\\world" << endl;
  system("pause");
  return 0;
}


hello\world
请按任意键继续. . .


3.水平制表符 \t


#include <iostream>
using namespace std;
int main()
{
  //水平制表符  \t  作用:整齐的输出
  cout << "aaa\thello" << endl;
  cout << "aa\thello" << endl;
  cout << "aaaa\thello" << endl;
  system("pause");
  return 0;
}


宽度一共八个,前面有n个a,后面就8-n个空格


aaa     hello
aa      hello
aaaa    hello
请按任意键继续. . .


2.6 字符串型


作用:用于表示一串字符


两种风格:


1. C风格字符串


char 变量名[] = "字符串值";


#include <iostream>
using namespace std;
int main()
{
  char str1[] = "abc";
  cout << "str1=" << str1 << endl;
  system("pause");
  return 0;
}


str1=abc
请按任意键继续. . .


注意:C风格的字符串要用双引号括起来


2. C++风格字符串


string 变量名 = "字符串值";


注意:老版本可能需要包含string头文件


#include <iostream>
using namespace std;
#include <string>   //2019不需要,老版本可能需要这个头文件
int main()
{
  string str1 = "abc";
  cout << "str1=" << str1 << endl;
  system("pause");
  return 0;
}


2.7 布尔类型 bool


作用:布尔值数据类型代表真或假的值


  • true


  • false


bool类型占1个字节


#include <iostream>
using namespace std;
int main()
{
  bool flag = true;
  cout << flag << endl;
  cout << "bool类型所占用空间" << sizeof(flag) << endl;
  system("pause");
  return 0;
}


1
bool类型所占用空间1


2.8 数据的输入


作用:用于从键盘获取数据


关键字:cin


语法:cin >> 变量


例1:整型赋值


#include <iostream>
using namespace std;
int main()
{
  int a = 0;    // 初始化
  cout << "请给整形变量a赋值:" << endl;
  cin >> a;
  cout << "赋值后a为:" << a << endl;
  system("pause");
  return 0;
}


请给整形变量a赋值:
12
赋值后a为:12
请按任意键继续. . .


例2:浮点型赋值


#include <iostream>
using namespace std;
int main()
{
  float f = 3.14f;
  cout << "请给浮点型f赋值:" << endl;
  cin >> f;
  cout << "赋值后f为:" << f << endl;
  system("pause");
  return 0;
}


请给浮点型f赋值:
3.1415
赋值后f为:3.1415
请按任意键继续. . .


例3:字符型


#include <iostream>
using namespace std;
int main()
{
  char ch = 'a';
  cout << "请给字符型ch赋值:" << endl;
  cin >> ch;
  cout << "赋值后ch为:" << ch << endl;
  system("pause");
  return 0;
}


请给字符型ch赋值:
b
赋值后ch为:b
请按任意键继续. . .


例4:字符串型


#include <iostream>
using namespace std;
#include <string>
int main()
{
  char str1[] = "abc";
  string str2 = "abc";
  cout << "请给字符串str1,str2赋值:" << endl;
  cin >> str1;
  cin >> str2;
  cout << "赋值后str1为:" << str1 << endl;
  cout << "赋值后str2为:" << str2 << endl;
  system("pause");
  return 0;
}


请给字符串str1,str2赋值:
abcd
abcde
赋值后str1为:abcd
赋值后str2为:abcde
请按任意键继续. . .


例5:bool类型


除了0代表假,其他都为真


#include <iostream>
using namespace std;
#include <string>
int main()
{
  bool flag = false;
  cout << "请给bool类型flag赋值:" << endl;
  cin >> flag;
  cout << "赋值后:" << flag << endl;
  system("pause");
  return 0;
}


请给bool类型flag赋值:
2020
赋值后:1
请按任意键继续. . .


请给bool类型flag赋值:
3.14
赋值后:1
请按任意键继续. . .
目录
相关文章
|
2月前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
47 2
C++入门12——详解多态1
|
2月前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
89 1
|
2月前
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
30 0
|
2月前
|
自然语言处理 编译器 C语言
【C++打怪之路Lv1】-- C++开篇(入门)
【C++打怪之路Lv1】-- C++开篇(入门)
39 0
|
2月前
|
分布式计算 Java 编译器
【C++入门(下)】—— 我与C++的不解之缘(二)
【C++入门(下)】—— 我与C++的不解之缘(二)
|
2月前
|
编译器 Linux C语言
【C++入门(上)】—— 我与C++的不解之缘(一)
【C++入门(上)】—— 我与C++的不解之缘(一)
|
2月前
|
编译器 C++
C++入门11——详解C++继承(菱形继承与虚拟继承)-2
C++入门11——详解C++继承(菱形继承与虚拟继承)-2
41 0
|
2月前
|
程序员 C++
C++入门11——详解C++继承(菱形继承与虚拟继承)-1
C++入门11——详解C++继承(菱形继承与虚拟继承)-1
44 0
|
2月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
48 0
|
2月前
|
存储 C++ 容器
C++入门9——list的使用
C++入门9——list的使用
22 0