C++使用教程

目录

一、软件使用

二、C++基础规则补充

关键字

整型取值范围

浮点型取值范围

字符型使用规则

字符串型使用规则

布尔类型

常用的转义移字符 

三、数组、函数、指针、结构体补充

1.数组 

2.函数

声明:

分文件编写:

值传递:

 3.指针

空指针:

野指针:

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

利用指针在函数修改实参的值: 

地址传递:

const修饰指针:

1)const修饰指针--常量指针

 2)const修饰常量--指针常量

 3)const既修饰指针,又修饰常量

以冒泡排序为例三者的结合应用

4.结构体 

结构体嵌套

结构体做函数参数

结构体const使用场景 

四、C++语句及函数 

三目运算符

 switch语句

goto语句

system("pause")的使用

sizeof()的使用

stoi( )函数

一、软件使用

Visual Studio

打开在右侧的管理器源代码下创建文件

二、C++基础规则补充

关键字

定义常量变量(标识符)不可使用关键字作名字

标识符字母区分大小写

整型取值范围

short:1*10^4

int:1*10^9

long long:1*10^19

以上为约数

浮点型取值范围

float:7位有效数字

double:15位有效数字

字符型使用规则

1)用单引号将字符括起来

2)单引号中只能有一个字符,不能是字符串

3)其实际上储存的是字符的ASCII码

char name = 'a';

字符串型使用规则

加头文件#include<string>

布尔类型

true为1,false为0

bool a = true;
cout << a;

输出结果为1 

常用的转义移字符 

"\\":输出\

"\t":水平制表符(一共占8个位置,不满用空格补齐)

主要为了整齐的输入数据

cout << "aa\t123" << endl;
cout << "aaa\t123" << endl;
cout << "aaaa\t123" << endl;

三、数组、函数、指针、结构体补充

1.数组 

 直接输出数组名可以查看数组的首地址

若想具体查看其中某一个具体元素的地址,则在输出的时候前加& (取址符)

2.函数

声明:

函数的声明可以写多次,但定义只有一次

(声明即为函数的第一行)

分文件编写:

值传递:

即在函数调用时实参将数值传入给形参

值传递时,如果形参发生改变,并不会影响实参

比如,在写到交换函数时,会存在这样的错误写法:

#include<iostream>
using namespace std;
void swap(int x, int y)
{
	int f = x;
	x = y;
	y = f;
}
int main()
{
	int a = 10;
	int b = 20;
	swap(a, b);
	cout << a << ' ' << b;
	return 0;
}

这时运行结果输出的a,b的值并没有发生交换

原因在于形参只在函数内有用,当实参传递值给形参时,形参只是作为实参的临时拷贝 ,值传递时并没有改变实参。改变值需要传递地址进行调用,使函数内部可以操纵函数外部的变量

如果函数不需要返回值,声明可以写void,且可以不写return

 3.指针

通过指针间接访问内存

int a = 10;
int * p;
p = &a;
*p =1000;

这里输出p为a的地址

在指针前加*代表解引用,找到指针指向的内存中的数据 

空指针:

指针变量指向内存中编号为0的空间

用途:初始化指针变量

空指针指向的内存不可访问(0~255之间的内存编号是系统占用的)

int * p=NULL;
野指针:

 指针变量指向非法的内存空间(一种错误)

空指针和野指针都不是用户申请的空间,不要进行访问

利用指针访问数组中的元素:
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = a;//a就是数组的首地址
cout << *p << endl;//访问第一个元素
p++;//让指针向后偏移四个字节
cout << *p << endl;//访问第二个元素
return 0;
利用指针在函数修改实参的值: 
地址传递:
#include<iostream>
using namespace std;
void swap(int *x, int *y)
{
	int f = *x;
	*x = *y;
	*y = f;
}
int main()
{
	int a = 10;
	int b = 20;
	swap(&a,&b);
	cout << a << ' ' << b;
	return 0;
}
const修饰指针:

分三种情况

1)const修饰指针--常量指针

指针的指向可以改,指针指向的值不可以改

const int * p = &a;
 2)const修饰常量--指针常量

指针的指向不可以改,指针指向的值可以改

int * const p = &a;
 3)const既修饰指针,又修饰常量

指针的指向,指针指向的值都可以改

const int * const p = &a;
以冒泡排序为例三者的结合应用
#include<iostream>
using namespace std;
void Paixu(int*a, int len)
{
	for (int i = 0; i < len - 1; i++)
	{
		for (int j = 0; j < len - 1 - i; j++)
		{
			if (a[j] > a[j + 1])
			{
				int f = a[j];
				a[j] = a[j + 1];
				a[j + 1] = f;
			}
		}
	}
}
void Prin(int* a, int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << a[i];
	}
}
int main()
{
	int a[10] = { 4,3,6,9,1,2,10,8,7,5 };
	int len = sizeof(a) / sizeof(a[0]);
	Paixu(a, len);
	Prin(a, len);
    return 0;
}

4.结构体 

#include<iostream>
using namespace std;

struct Student
{
    string name;
    int age;
    double score;
}stu;//stu作为结构体变量

给结构体赋初始值:

int main()
{
//方法一
    stu.name = "小明";
    stu.age = 18;
    stu.score = 99.7;
//方法二
    struct Student stu[3] =
    {
      { "小七", 19, 100},
      { "小可", 23, 90 },
      { "小时", 18, 80 }
    };
//方法三(结构体指针)
    Student* p = &stu[0];
    cout << p->age;

    return 0;
}
结构体嵌套

 赋值时:结构体变量1.结构体变量2

结构体做函数参数

构造函数

//值传递
void printStudent1(struct Student stu)
{
    //cout<<......
}
//地址传递
void printStudent2(struct Student* p)
{
    //cout<<......
}

 传递

//值传递
printStudent1(stu);
//地址传递
printStudent2(&stu);

结构体const使用场景 

在使用函数对结构体进行地址传递时,在函数中误改结构体中的值会影响到实参本身,当在函数中对传递的指针使用const,则使函数无法影响实参。

void printStudent(const Student *stu)
{
   //cout<<....
}

四、C++语句及函数 

三目运算符

格式:表达式1?表达式2:表达式3

如果表达式1成立,则执行表达式2;不成立则执行表达式3 

其返回的变量可以继续赋值

 switch语句

执行多条件分支语句

格式:switch(表达式)

          {

                case  结果1:执行语句;break;

                 ………………

                default:执行语句;break;(前面的都不符合)

          }

goto语句

无条件跳转语句

格式:goto 标记

即如果标记名称存在,在执行到goto语句时,会跳转到标记的位置

system("pause")的使用

1)通常用于在命令行窗口中暂停程序的执行,等待用户按下任意键继续

2)目的在于在程序执行完毕后保持命令行窗口打开,以便用户能够查看程序的输出结果

sizeof()的使用

显示数据类型占用内存的大小(字节)

括号里放数据类型或变量

常用于求数组中元素的个数

int num[5] = { 1,2,3,4,5 };
int a = sizeof(num);
int b = sizeof(num[0]);
int sum = sizeof(num) / sizeof(num[0]);

stoi( )函数

Ⅰ.在头文件#include<string>中

Ⅱ.其作用将数字字符串转化为int输出(可自动去除前导0)

Ⅲ.存在范围限制(int)

相关推荐

  1. C#中Dapper的使用教程

    2024-06-19 00:58:04       25 阅读
  2. 【Unix】FlatBuffers 在 C++ 项目中的使用教程

    2024-06-19 00:58:04       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-19 00:58:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-19 00:58:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-19 00:58:04       82 阅读
  4. Python语言-面向对象

    2024-06-19 00:58:04       91 阅读

热门阅读

  1. Apache网页优化

    2024-06-19 00:58:04       29 阅读
  2. 网络流量轮廓

    2024-06-19 00:58:04       23 阅读
  3. 2024年安卓开发书籍推荐,含答案解析

    2024-06-19 00:58:04       27 阅读