C++自学笔记01:C++基础

1、C++初识

1.1 第一个C++程序

     打印Hello World
#include<iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;

	system("pause");
	return 0;
}

1.2 变量与常量

变量的作用:给一段内存空间命名,便于操作该内存空间
语法: 数据类型 变量名 = 变量初始值;
实例:
#include<iostream>
using namespace std;

int main()
{
	int s = 10;
	cout << "a = " << s << endl;

	system("pause");
	return 0;
}

常量的作用:用于记录不可以更改的数据
语法:
1、#define定义宏常量 #define 常量名 常量值
2、const修饰的变量 const 数据类型 常量名 = 常量值

1.3 标识符命名规则

1、标识符不能是关键字
2、只能由字母、数字or下划线组成
3、第一个字符必须为字母or下划线
4、字母区分大小写

2、数据类型

2.1、整型

数据类型占用空间
short2字节
int四字节
longwindow中为4字节
long long8字节

2.2、sizeof关键字

作用: 可以统计数据类型所占内存大小
语法:sizeof(数据类型 or 变量)
示例:

#include<iostream>
using namespace std;

int main()
{
	int s = 10;
	cout << "int类型所占内存大小为: " << sizeof(s) << endl;
	cout << "long类型所占内存大小为: " << sizeof(long) << endl;

	system("pause");
	return 0;

2.3、实型(浮点型)

作用:用于表述带小数点的数字
单精度浮点数 : float 4字节
双精度浮点数:double 8字节

2.4、字符型

作用:用于显示单个字符
语法: char 变量名 = 变量值。例如 char ch = ‘a’;
注:
1)在显示字符时,用单引号而不要用双引号;
2)单引号内只能由一个字符而不能是字符串;
3)占用一个字节;
4)字符型变量存储的是对应的ASCII码。

2.5、字符串型

作用:用于表示一个字符串
两种表示风格:
1)C风格字符串: char 变量名[] = “字符串值”
2)C++风格字符串: string 变量名 = “字符串值”

2.5、数据的输入

作用:用于从键盘获取数据
关键字:cin
语法: cin >> 变量

3、程序流程控制

3.1、三目运算符

作用:实现简单的判断
语法:表达式1?表达式2:表达式3
解释: 当表达式为真,执行表达式2,并返回表达式2的结果
当表达式为假,执行表达式3,并返回表达式3的结果

3.2、for循环语句

作用:满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}

4、数组

4.1、概述

数组即为存在相同数据类型的一段连续内存空间
特点1:每个数据元素都是相同的数据类型;
特点2:数组是由连续的内存位置决定的;

5、数组

5.1、一维数组

三种定义方式:
1、数据类型 数组名[数组长度];
2、数据类型 数组名[数组长度] = {值1,值2,…}
3、数据类型 数组名[] = {值1,值2,…}

一维数组数组名的作用:
1、统计数组在内存中的长度
2、获取数组在内存中的首地址

5.2、二维数组

四种定义方式:
1、数据类型 数组名[ 数组行数 ][ 数组列数 ] ;
2、数据类型 数组名 [数组行数] [数组列数] = {{数据1,数据2,…}, {数据3,数据4,…};
3、数组类型 数组名 [][列数] = {数据1,数据2,…}
以上四种定义方式中,第二种更加直观,代码可读性更高

二维数组数组名的作用:
1、统计数组在内存中的长度
2、获取数组在内存中的首地址

6、函数

6.1、概述

作用:将一段经常使用的代码封装起来,减少重复代码

6.2、函数的定义

5要素: 返回值类型,函数名,参数列表,函数体语句,return表达式
语法:

返回值类型 函数名(参数列表)
{
	函数体
	return 表达式
}

6.3、函数的份文件编写

作用:使代码结构更加清晰
一般步骤:
1)创建后缀为.h的头文件
2)创建后缀为.cpp的源文件
3)在头文件中写函数的声明
4)在源文件中写函数的定义

7、指针

7.1、基本概念

作用: 可以通过指针间接访问内存
1)内存编号是从0开始记录,一般用十六进制数字表示;
2)可以利用指针变量保存地址。

7.2、定义和使用

定义语法: 数据类型 * 变量名;

int a = 10;
//1、定义一个指针
int *p
//2、让指针p记录变量a的地址
p = &a;

//3、使用指针,取到指针p指向内存中的数据
cout << *p << endl;

7.3、指针所占内存空间

在32位操作系统下占4字节,64位操作系统下占8字节

7.4、空指针和野指针

空指针: 指向内存编号为0的空间
用途: 初始化指针变量
语法: int *p = NULL;
注意: 空指针指向的内存地址不可以被访问

7.5、const修饰指针

三种情况:
1)const修饰指针 — 常量指针
2)const修饰常量 — 指针常量
3)const即修饰指针又修饰常量

#include<iostream>
using namespace std;


int main()
{
	int a = 10;
	int b = 20;

	//1、常量指针
	const int * p = &a;
	// 特点: 指针的指向可以修改,但指针指向的值不可以修改
	// *p = 20; 错误
	// p = &b;  正确

	//2、指针常量
	int* const q = &a;
	//特点: 指针的指向不可以修改,但指针指向的值可以修改;
	// *q = 20; 正确
	// q = &b; 错误

	//const即修饰指针又修饰常量
	const int* const w = &a;
	//特点: 指针的指向和指向的值均不可以修改

	system("pause");
	return 0;
}

7.6、指针和数组

作用: 利用指针访问数组中的元素
示例:

#include<iostream>
using namespace std;


int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr; //数组名指向的是数组在内存中的首地址
	cout << "第一个元素:" << arr[0] << endl;
	cout << "指针访问第一个元素:" << *p << endl;

	//利用指针遍历数组
	for (int i = 0; i < 10; i++)
	{
		cout << *p << endl;
		p++;
	}


	system("pause");
	return 0;
}

7.7、指针和函数

作用: 利用指针作为函数的参数,可以修改实参的值

8、结构体

8.1、结构体的基本概念

结构体属于用户自定义的数据类型 允许用户存储不同的数据类型

8.2、结构体的定义和使用

语法: struct 结构体名 {结构体成员列表};
通过结构体创建变量的三种方式:

  • struct 结构体名 变量名
  • struct 结构体名 变量名 = {成员1,成员2,…}
  • 定义结构体时顺便创建变量

8.3、结构体数组

作用: 将自定义的结构体放到数组中便于维护
语法: struct 结构体名 数组名[元素个数] = {{}, {},…}

8.4、结构体指针

作用: 通过指针访问结构体中的成员
利用操作符-> 可以用过结构体指针访问结构体属性

学习资料

  “黑马程序员”C++系列课程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值