C++的一些点

news2024/12/24 9:53:42

P52 函数-值传递

值传递时,函数的形参发生改变,不会影响实参。


P54 函数-函数声明

函数声明,就可以把函数定义放在main函数后面

声明可以写多次,但是定义只能写一次。

#include<iostream>
using namespace std;

int max(int a, int b); //函数声明可以写多次
int max(int a, int b);
int max(int a, int b);

int main() {
	int a = 10;
	int b = 20;
	cout << max(a,b) << endl;
	return 0;
}

int max(int a, int b) { //函数定义只能写一次
	return a > b ? a : b;
}

P55 函数的分文件编写

 头文件 swap.h

#include <iostream>
using namespace std; 

//函数的声明
void swap(int a, int b);

源文件 swap.cpp

#include "swap.h"

void swap(int a, int b) {
	int temp = a;
	a = b;
	b = temp;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
}

mian函数可直接调用swap函数了

#include "swap.h"

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

	swap(a, b);
}

VS2022后,可以直接在头文件里定义,在源文件里引用。


P56 指针

指针就是一个地址

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

int main() {
	//定义指针
	int a = 10;

	//指针定义的语法:数据类型 * 变量名;
	int* p;

	//让指针记录变量a的地址
	p = &a;

	cout << "a的地址为" << &a << endl;  // a的地址为000000B3D3BFF8B4
	cout << "指针p值为" << p << endl;  // 指针p值为000000B3D3BFF8B4

	//通过解引用来找到指针指向的内存,指针前加*表示解引用,找到指针指向的内存中的数据
	*p = 1000;

	cout << "a = " << a << endl;  // a = 1000
	cout << "*p = " << *p << endl; // *p = 1000
}

P58 空指针

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

用途:初始化指针变量

空指针指向的内存是不可以访问的

int main() {

	//空指针
	//对变量进行初始化
	int* p = NULL;

	//空指针不能进行访问
	//0-255之间的内存编号是系统占用的,因此不可以访问
	*p = 100; //必报错

	return 0;
}

P59 野指针

野指针:指针指向非法空间

	//野指针,运行会报异常
    int* p = (int *)0x1100;

P60 const修饰指针

1.const修饰指针——常量指针

2.const修饰常量——指针常量

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

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

	//const修饰指针——常量指针
	//指针的指向可以修改,但是指针指向的值不可以改
	const int* p = &a;
    *p = 100; //必报错,指针指向的值不可以修改
	p = &b; //正确,指针的指向可以改

	//const修饰常量——指针常量
	//指针的指向不可以修改,但是指针指向的值可以改
	int* const s = &a;
	*s = 20; //正确,指针指向的值可以修改
	s = &b; //必报错,指针的指向不可以改

	//const既修饰指针又修饰常量
	//指针的指向和指针指向的值都不可以修改
	const int* const t = &a;
	*t = 20; //报错
	t = &b; //报错
	return 0;
}

P61 指针遍历数组

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++; //指针向后偏移一位
	} 
}

P62 指针和函数

//值传递
void swap1(int a, int b) {
	int temp = a;
	a = b;
	b = temp;
}
//地址传递
void swap2(int *p1, int *p2) {
	int temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}

int main() {
	int a = 10;
	int b = 20;
	
	swap1(a, b); //值传递不改变实参
	swap2(&a, &b); //地址传递会改变实参

	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat源码:SocketProcessor、ConnectionHandler与Http11Processor

前文&#xff1a; 《Tomcat源码&#xff1a;启动类Bootstrap与Catalina的加载》 《Tomcat源码&#xff1a;容器的生命周期管理与事件监听》 《Tomcat源码&#xff1a;StandardServer与StandardService》 《Tomcat源码&#xff1a;Container接口》 《Tomcat源码&#xff1a…

C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析

C线程 并发编程&#xff1a;std::thread、std::sync与std::packaged_task深度解析 1. C并发编程概述&#xff08;C Concurrency Overview&#xff09;1.1 并发与并行的区别&#xff08;Difference between Concurrency and Parallelism&#xff09;1.2 C中的线程模型&#xff0…

(二)微服务中间键工作原理——nacos服务端服务注册心跳包(/nacos/v1/ns/instance/beat)源码解读

前言 上节内容我们通过分析nacos客户端源码&#xff0c;了解了nacos客户端是如何向服务端注册服务和发送心跳包的&#xff0c;本节内容话接上一节内容&#xff0c;我们通过分析nacos服务的源码&#xff0c;查看服务端是如何处理客户端注册时候的心跳包的。关于nacos服务端的源…

工程制图篇:公差原则与要求

目录 1、尺寸与几何公差2、公差原则3、公差要求4、关键名词解释5、常用通用量具 1、尺寸与几何公差 1&#xff09;尺寸公差1&#xff1a;上极限尺寸减去下极限尺寸之差&#xff0c;或上极限偏差减去下极限偏差只差。它是允许尺寸的变动量。尺寸公差是一个没有符号的绝对值&…

Cisco.Packet.Tracer思科模拟器练习题

一、网络设备配置 1、将 RA 路由器重命名为 RA&#xff0c;将 RB 路由器重命名为 RB 2、按下方表格中的要求完成设备主机名&#xff08;hostname&#xff09;及接口配置&#xff1b; 3、将 RA 的 DCE 端时间频率设置 64000&#xff0c;并封装 PPP 协议后发送用户名密码 usera…

Spring 源码分析衍生篇十三 :事务扩展机制 TransactionSynchronization

文章目录 一、前言二、TransactionSynchronization 1. TransactionSynchronization 1.1 TransactionSynchronization 的定义1.2 TransactionSynchronizationManager2. TransactionSynchronization 原理简述 2.1 TransactionSynchronization#beforeCommit2.2 TransactionSynchro…

基于状态的系统和有限状态机FSM

基于状态的系统和有限状态机FSM 介绍 基于模型进行测试。模型可能是规格或描述感兴趣的属性。 该模型通常是一个抽象概念&#xff0c;应该相对容易理解。 测试补充了白盒方法。 测试通常是黑盒&#xff1a;不考虑实际系统的结构。 如果模型具有形式语义&#xff0c;则可实现的…

leetcode--二叉搜索树中第K小的元素(java)

二叉搜索树中第K小的元素 leetcode 230 题 二叉搜索树第K 小的元素解题思路代码演示二叉树专题 leetcode 230 题 二叉搜索树第K 小的元素 原题链接&#xff1a; https://leetcode.cn/problems/kth-smallest-element-in-a-bst/ 题目描述 给定一个二叉搜索树的根节点 root &#…

智慧办公室虚拟现实 VR 可视化

“虚拟现实”是来自英文“Virtual Reality”&#xff0c;简称 VR 技术&#xff0c;其是通过利用计算机仿真系统模拟外界环境&#xff0c;主要模拟对象有环境、技能、传感设备和感知等&#xff0c;为用户提供多信息、三维动态、交互式的仿真体验。 图扑软件基于自研可视化引擎 H…

亚马逊云科技位列IDC MarketScape决策支持分析数据平台领导者

随着科学技术的不断发展&#xff0c;人们的生活方式也在不断改变。现在&#xff0c;人们可以通过互联网获得更多的信息&#xff0c;也可以通过智能手机随时随地与他人进行交流。此外&#xff0c;人工智能技术的进步也使得机器能够完成一些复杂的任务&#xff0c;从而提高了人们…

【Azure】微软 Azure 基础解析(六)计算服务中的虚拟机 VM、虚拟机规模集、Azure Functions 与 Azure 容器(ACI)

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;「Azure探秘&#xff1a;构建云计算世界」 专栏中。 本系列文章列表如下&#xff1a; 【Azure】微软 Azure 基础解析&#xff08;三&#xff09;描述云计算运营中的 CapEx 与 OpEx&#xff0c;如何区分 CapEx 与 OpEx…

写了 7 年代码,第一次见这么狗血的小 Bug!

刚刚修我们鱼聪明 AI 助手平台的一个 Bug&#xff0c;结局很狗血&#xff01;赶紧给大家分享一下&#xff0c;顺便也分享下标准的排查 Bug 思路。 事情是这样的&#xff0c;有小伙伴在鱼聪明平台&#xff08;https://www.yucongming.com&#xff09;创建了一个 AI 助手&#x…

ModStartCMS v6.5.0 菜单多级支持,框架结构优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

InnoDB Cluster集群Mysql Router代理层最佳实践

InnoDB Cluster 集群 & Mysql-Router 代理层 前言 Mysql是现今最常用的关系型数据库之一&#xff0c;高可用一直是我们对软件服务的要求。常见的Mysql高可用是主从配置&#xff0c;在主节点挂掉后需要依赖监控脚本进行主从切换将从节点升级&#xff0c;后台服务代码层面也…

正在破坏您的协程(Coroutines)的无声杀手(Silent Killer)

正在破坏您的协程的无声杀手 处理 Kotlin 中的取消异常的唯一安全方法是不重新抛出它们。 今天生产服务器再次停止响应流量。 上个星期&#xff0c;你刚重新启动它们并将其视为故障。但是你总觉得有些奇怪&#xff0c;因为日志中没有任何错误的痕迹&#xff0c;甚至没有警告。…

vue cli配置代理解决跨域问题

跨域问题 是由于违背了同源策略&#xff0c;同源策略规定了协议名、主机名、端口号必须一致 我们目前所处的位置是http localhost 8080&#xff0c;我们想向一台服务器发送请求&#xff0c;它的位置是http localhost 5000&#xff0c;我们的ajax请求从浏览器发送到服务器&#…

界面组件DevExpress WPF中文指南 - 如何应用系统强调色及主题切换

在最新版本的Microsoft Office产品中&#xff0c;用户可以根据系统设置选择主题&#xff0c;当使用这个主题时&#xff0c;Office将采用Windows强调色和应用模式(亮/暗)设置&#xff0c;并将它们应用到Office本身。如果用户在操作系统中更改了强调色或应用模式&#xff0c;Offi…

【spring源码系列-02】通过refresh方法剖析IOC的整体流程

Spring源码系列整体栏目 内容链接地址【一】spring源码整体概述https://blog.csdn.net/zhenghuishengq/article/details/130940885【一】通过refresh方法剖析IOC的整体流程https://blog.csdn.net/zhenghuishengq/article/details/131003428 spring底层源码整体概述 一&#xff…

2个实际工作中的小技巧,先收再看(网工版)

大家好&#xff0c;我是老杨。 本来想发点关于快乐的文章&#xff0c;但我思来想去&#xff0c;对成年人最大的快乐&#xff0c;莫过于高效完成工作&#xff0c;早点下班回家。 关于提升工作效率这方面啊&#xff0c;我的文章其实零碎、分散的写过了很多次了。 你要知道&…

ChatGPT国内免费使用地址和开源公众号集成项目分享

ChatGPT国内免费使用地址和开源公众号集成项目分享 ChatGPT国内免费使用地址ChatGPT开源公众号集成项目ChatGPT国内免费调用API的地址总结免费体验地址 人工智能技术的快速发展&#xff0c;ChatGPT聊天机器人备受瞩目。然而&#xff0c;如何在国内免费使用ChatGPT却是许多人关注…