C++不同于C的基础语法(一)

1、基本模板

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	system("pause");
	return 0;
}

2、整型数据类型

short短整型         2字节
int整型             4字节
long长整型          4字节
long long长长整型   8字节

3、字符串数据类型
在C++中可以有两种方式表示字符串

#include <iostream>
#include <string>
using namespace std;
int main()
{
	//C传统方式
	char str[]="I love C++";
	cout<<str<<endl;
	//C++字符串类型
	string Str="I love C++";
	//使用string类型要添加string头文件
	cout<<Str<<endl;
	system("pause");
	return 0;
}

在这里插入图片描述
4、浮点数类型

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	float a = 3.14f;
	/*注意float类型一般在数值后面加f,不让计算机内部就会
	把3.14当作double类型,再转化为float类型
	*/
	double b = 3.14;
	//sizeof(类型名或者是变量名)
	cout << "float has " << sizeof(a) << " byte" << endl;
	cout << "double has " << sizeof(double) << " byte" << endl;

	system("pause");
	return 0;
}

在这里插入图片描述

5、布尔类型
布尔类型变量为真或者假,即True和False

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	bool flag1 = true;
	bool flag2 = false;
	cout << "True=" << flag1 << "False=" << flag2 << endl;
	system("pause");
	return 0;
}

在这里插入图片描述
从结果可以看出,true和false其实就是1和0;true也可以是其他非0的数。

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	bool flag;
	flag = 100;
	cout << flag << endl;
	flag = -100;
	cout << flag << endl;
	system("pause");
	return 0;
}

在这里插入图片描述

6、转义字符

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	cout << "小明:" << "I love C++" << endl;
	cout << "欧阳锋:" << "I love C++" << endl;
	cout << "桥本环奈:" << "I love C++" << endl;
	//使用制表符,制表符为8个字符
	cout << endl << "小明:\t" << "I love C++" << endl;
	cout << "欧阳锋:\t" << "I love C++" << endl;
	cout << "桥本环奈:\t" << "I love C++" << endl;
	//当制表符前面的字符个数超过8时(一个汉字两个字符长度),可以多添加几个制表符
	cout << endl << "小明:\t\t" << "I love C++" << endl;
	cout << "欧阳锋:\t" << "I love C++" << endl;
	cout << "桥本环奈:\t" << "I love C++" << endl;
	system("pause");
	return 0;
}

在这里插入图片描述
7、除法

#include <iostream>//注意C++头文件不用加.h
using namespace std;
int main()
{
	double a = 3.14322;
	double b = 5;
	int c = 5;
	int d = 6;
	cout << "int/int\t\t" << c / d << endl;
	cout << "int/double\t" << c / a << endl;
	cout << "double/double\t" << a / b << endl;
	system("pause");
	return 0;
}

在这里插入图片描述
8、取余
注意,在C++中,只有整数%整数,且被除数不能为0.
9、前置和后置运算符
与C语言中的一致。
10、赋值运算符

+=-=*=/=%=

11、比较运算符

==><<=>=!=

12、逻辑运算符

非:!
与:&&
或:||

13、程序流程结构
①选择结构:if、switch
②循环结构:while、dowhile、for
③跳转结构:continue、break、goto(一般不用)
14、数组
数组特点:①数组中的元素存放在一段连续的内存空间中②数组中的元素的数据类型相同
三种定义类型:

int arr1[4];int arr2[4]={1,2,3,4};int arr3[]={1,2,3,4};

一维数组名的作用:
①获取数组在内存中的长度
②获取数组在内存中的首地址

#include "iostream"
#include "string"
using namespace std;
int main()
{
	//数组定义
	int arr[] = { 1,2,3,4,5 };
	//输出数组的占用内容大小
	cout << "数组的占用内存大小为:\t\t\t" << sizeof(arr) << "byte" << endl;
	//输出数组的元素大小
	cout << "数组元素占用的内存大小为:\t\t" << sizeof(arr[0]) << "byte" << endl;
	//输出数组的元素个数
	cout << "数组的元素个数为:\t\t\t" << sizeof(arr) / sizeof(arr[0]) << "byte" << endl;
	//输出数组的首地址
	cout << "数组的首地址为:\t\t\t" << arr << endl;
	cout << "数组的首地址为:\t\t\t" << &arr[0] << endl;
	//用十进制表示数组的首地址
	cout << "数组的十进制首地址为:\t\t\t" << (int)arr << endl;
	//int类型在地址表示中,十六进制的1相当于1个字节
	cout << "arr[0]的十六进制地址:\t\t\t" << &arr[0] << endl;
	cout << "arr[1]的十六进制地址:\t\t\t" << &arr[1] << endl;
	//int类型在地址表示中,十进制的1相当于1个字节
	cout << "arr[0]的十进制地址:\t\t\t" << (int)&arr[0] << endl;
	cout << "arr[1]的十进制地址:\t\t\t" << (int)&arr[1] << endl;
	//另外要注意数组名为常量,不能赋值
	system("pause");
	return 0;
}

在这里插入图片描述

#include "iostream"
#include "string"
using namespace std;
int main()
{
	//实现数组的倒置
	int arr[] = { 1,2,3,4,5 };
	//先确定数组的起始下标和结束下标
	int start = 0;
	int end = sizeof(arr) / sizeof(arr[0]) - 1;
	int temp;//用于暂存数据
	cout << "倒置前的数组:";
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << " ";
	}
	//循环直至start>end
	while (start <= end)
	{
		temp = arr[start];
		arr[start] = arr[end];
		arr[end] = temp;
		start++;
		end--;
	}
	cout << endl << "倒置后的数组:";
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
	system("pause");
	return 0;
}

在这里插入图片描述

#include "iostream"
#include "string"
using namespace std;
int main()
{
	//--------------------实现数组元素的冒泡排序--从小到大---------------------------------
	int arr[] = { 0,1,4,2,9,5,6,3,5 };
	int arr_length = sizeof(arr) / sizeof(arr[0]);
	int i, j, temp;
	cout << "排序前的数组:";
	for (int p = 0; p < arr_length; p++)
	{
		cout << arr[p] << " ";
	}
	cout << endl;
	for (i = 0; i < arr_length - 1; i++)//arr_length - 1为总共需要挑选最大值的次数
	{
		for (j = 0; j < arr_length - 1 - i;j++)//arr_length - 1 - i为每次挑选最大值所需做的比较次数
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	cout << "排序后的数组--从小到大:";
	for (int p = 0; p < arr_length; p++)
	{
		cout << arr[p] << " ";
	}
	cout << endl;
	//----------------实现数组元素的冒泡排序--从大到小-----------------------------------------------
	for (i = 0; i < arr_length - 1; i++)//arr_length - 1为总共需要挑选最大值的次数
	{
		for (j = 0; j < arr_length - 1 - i; j++)//arr_length - 1 - i为每次挑选最大值所需做的比较次数
		{
			if (arr[j] < arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	cout << "排序后的数组--从大到小:";
	for (int p = 0; p < arr_length; p++)
	{
		cout << arr[p] << " ";
	}
	cout << endl;
	system("pause");
	return 0;
}

在这里插入图片描述
二维数组:

#include "iostream"
#include "string"
using namespace std;
int main()
{
	//二维数组的四种定义方式
	int arr1[2][3];
	int arr1[2][3] = { {1,2,3} ,{4,5,6 } };//常用
	int arr1[2][3] = { 1,2,3,4,5,6 };
	int arr1[][3] = { 1,2,3,4,5,6 };
	system("pause");
	return 0;
}
#include "iostream"
#include "string"
using namespace std;
int main()
{
	int arr[2][3] = 
	{ 
		{1,2,3} ,
		{4,5,6} 
	};
	//获取二维数组所占内存空间大小
	cout << "二维数组所占内存空间大小为:" << sizeof(arr) << "byte" << endl;
	cout << "二维数组第一行所占内存空间大小为:" << sizeof(arr[0]) << "byte" << endl;
	cout << "二维数组第一个元素所占内存空间大小为:" << sizeof(arr[0][0]) << "byte" << endl;
	cout << "二维数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
	cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
	system("pause");
	return 0;
}

在这里插入图片描述
15、指针

#include "iostream"
#include "string"
using namespace std;
int main()
{
	int a=10;
	int *p = &a;
	cout << "指针p的内容为:" << p << endl;
	cout << "指针p所指向的内容为:" << *p << endl;
	//在X86环境下,指针变量大小为4个字节;在X64环境下,指针变量大小为8个字节
	cout << "int指针变量大小:" << sizeof(p) << "byte"<<endl;
	cout << "double指针变量大小:" << sizeof(double*) << "byte" << endl;
	cout << "float指针变量大小:" << sizeof(float*) << "byte" << endl;
	system("pause");
	return 0;
}

在这里插入图片描述

#include "iostream"
#include "string"
using namespace std;
int main()
{
	/*
	①常量指针:即指针指向一个常量,所以*p不可以改变,但p可以改变
	②指针常量:即指针是一个常量,所以p不可以改变,但是*p可以改变
	③const既修饰指针又修饰变量,所以p和*p都不可以改变
	*/
	int a = 10;
	int b = 10;
	//常量指针
	const int *p1 = &a;
	*p1 = 20;//错误
	p1 = &b;//正确
	//指针常量
	int * const p2 = &a;
	*p2 = 20;//正确
	p2 = &b;//错误
	//const既修饰指针又修饰变量
	const int * const p3 = &a;
	*p3 = 20;//错误
	p3 = &b;//错误
	system("pause");
	return 0;
}

16、结构体数组

#include "iostream"
#include "string"
using namespace std;
struct student 
{
	string name;
	int age;
	int score;
};
int main()
{
	student arr[3] = 
	{
		{"张三",10,20},
	    {"李四",11,30},
	    {"王五",11,100}
	};
	int length = sizeof(arr) / sizeof(arr[0]);
	arr[2].age = 10;
	for (int i = 0; i < length; i++)
	{
		cout << "名字:" << arr[i].name << " 年龄:" << arr[i].age << " 分数:" << arr[i].score << endl;
	}
	system("pause");
	return 0;
}

在这里插入图片描述
17、结构体指针

#include "iostream"
#include "string"
using namespace std;
struct student
{
	string name;
	int age;
	int score;
};
int main()
{
	student arr[3] =
	{
		{"张三",10,20},
		{"李四",11,30},
		{"王五",11,100}
	};
	student *p = arr;
	int length = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < length; i++,p++)
	{
		cout << "名字:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl;
	}
	system("pause");
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F l e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值