c++【3】 常量、指针、指针变量、变量指针

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量

常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。

常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

1.指针应用(1):

#include <iostream>
using namespace std;//指针应用
int main ()
{int a = 20, b = 40;int *p1 = &a ,*P2 = &b;cout <<"a= "<< a <<","<< "b=" <<"b"<<endl;return 0;
}

2.指针应用(2):

#include <iostream>
using namespace std;//指针应用
int main ()
{int a = 30 ,int b = 40;int *p1 = &a  ,*p2 = &b;cout <<"a= " << a << endl;cout <<"b= " << b << endl;cout <<"a= " <<(*p1)<<endl;cout <<"b= " <<(*p2)<<endl;return 0;
}

3.指针应用(3)优先级判定

#include <iostream>
using namespace std;//指针应用
int main ()
{int  a = 50;int *p = &a;cout << "a= " <<a <<endl;cout << "*p= "<<(*p++) <<endl; //优先级判定return 0;
}

4.指针变量作为函数参数

函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。

指针变量作为函数参数与变量本身做函数参数不同,变量作函数参数传递的是具体值,而指 针函数作函数参数传递的是内存的地址。 

5. 指针应用(3):

封装一个交换变量的函数,将地址里面的值进行交换

#include <iostream>
using namespace std;/*封装一个交换变量的函数,将地址里面的值进行交换
*/ 
void swapfunc(int *p1,int *p2)
{int temp = 11;temp  = *p1;*p1   = *p2;*p2   = temp;}//指针应用
int main ()
{int a ,b;int *p1,*p2;p1 =&a;p2 =&b;if(a>b)swapfunc(pa,pb);	cout<<"a= "<< a <<",b="<< b <<endl;cout<< *pa <<","<< *pb <<endl;return 0;
}

6.指针引用---数组

对变量定义另外一个名称,这个名称为该变量的引用

<类型>   &<引用变量名> = <原变量名>;

其中原变量名必须是一个已定义过的变量。如:

int max;

int &bufmax = max;

max = 5;

bufmax = 10;

bufmax = max+bufmax;

//max与bufmax 同一个地址

bufmax并没有重新在内存中开辟单元,只是引用max的单元。max与bufmax在内存中占有同一个地址,即同一个地址两个名字。

#include <iostream>
using namespace std;//指针应用
int main ()
{//指针数组int a [5] = {11,25,69,30,40};int *pa = a; //将数组的首地址赋给指针变量 pa pa= &a[0]cout <<"\n通过循环输出的数组a元素值: \n";for(i=0;i<5;i++)cout<<*(pa+i)<<",";cout<< endl << endl;	cout <<"a[0]= "<< *pa << endl;*pa = 59;cout <<"a[0]= "<< *pa <<endl;cout <<"结果为:"<< *(pa+1) <<endl;return 0;
}

7.字符串常量: 

字符串字面值或常量是括在双引号 " " 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。

您可以使用 \ 做分隔符,把一个很长的字符串常量进行分行。

#include<iostream>
#include<string>using namespace std;int main()
{string aa = "this is c++ program";cout << aa <<endl;string bb = "\n this is c++ program2";cout << bb <<endl;return 0;
}

8.定义常量:

在C++中,有两种简单的定义常量的方式
        (1)使用 #define 预处理器
        (2)使用 const  关键字

(1) #define 预处理器

#include<iostream>
#include<string>
using namespace std;//预处理器定义: #define  identifier  value   格式:#define   定义的名字  代表值    
#define Length 10
#define Width  6
#define Newline '\n'int main()
{//(1)#define 预处理器int area;area = Length * Width; //面积 = 长 * 宽cout << area ;cout <<Newline ;return 0;}

(2) 使用 const  关键字:

//const 格式: const type variable = value;
//使用const前缀声明指定类型的常量 ,意味着不可改

#include<iostream>
#include<string>
using namespace std;int main()
{const int LENGTH  = 10;const int WIDTH   = 7 ;const char 	NEWLINE  = '\n';int area ;area = LENGTH * WIDTH ;cout << area << endl;cout << NEWLINE;return 0;
}

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

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

相关文章

想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)

想要精通算法和SQL的成长之路 - 并查集的运用 前言一. 并查集的使用和模板1.1 初始化1.2 find 查找函数1.3 union 合并集合1.4 connected 判断相连性1.5 完整代码 二. 运用案例 - 省份数量 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 并查集的使用和模板 先说一下并查集…

源码分享-M3U8数据流ts的AES-128解密并合并---GoLang实现

之前使用C语言实现了一次&#xff0c;见M3U8数据流ts的AES-128解密并合并。 学习了Go语言后&#xff0c;又用Go重新实现了一遍。源码如下&#xff0c;无第三方库依赖。 package mainimport ("crypto/aes""crypto/cipher""encoding/binary"&quo…

工厂管理软件中的PLM管理

第一部分&#xff1a;介绍PLM管理的定义和背景 1.1 定义&#xff1a;PLM管理是指通过工厂管理软件实现对产品生命周期各个阶段的全面管理和协同合作&#xff0c;包括产品设计、工艺规划、生产制造、质量控制、供应链管理等环节。 1.2 背景&#xff1a;随着市场竞争的加剧和消…

Vue组件通信应用实践总结

【1】 组件通信的5种方式 props vue的自定义事件 pubsub第三方库 slot vuex① props 父子组件间通信的基本方式 属性值的2大类型: 一般: 父组件-->子组件函数: 子组件-->父组件 隔层组件间传递: 必须逐层传递(麻烦) 兄弟组件间: 必须借助父组件(麻烦)② vue自定义事件 …

【ORM】浅聊C#和Java的ORM底层框架

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 国庆假期马上结束&#xff0c;闲暇时间&#xff0c;突然对Ado.Net这个词的由来感兴趣&#xff0c;然后就一顿复习了一遍&#xff0c;顺便也了解了下java关于ORM框架的底层是什么&#xff…

Gmail 将停止支持基本 HTML 视图

根据 Google 支持文档的更新内容&#xff0c;Gmail 将从明年 1 月起停止支持基本 HTML 视图。 ▲ Gmai 基本 HTML 视图界面 目前网页版 Gmail 提供两个界面&#xff1a;基本 HTML 视图和标准视图。停止支持基本 HTML 视图后&#xff0c;当前打开经典模式的基本 HTML 视图模式 …

一文解释mapState的来龙去脉

mapState Vuex 提供的辅助函数之一&#xff0c;将 store 中的状态映射到组件的计算属性中&#xff0c;使得在组件中可以轻松地访问 Vuex store 中的状态值 MapState(映射状态) 在我们的 Count.vue 组件中&#xff0c;可以使用 mapState 来更简洁地获取 count 的状态值 首先&…

python读取vivo手机截图,将满屏图片文件移动别的路径

问题之初 python读取vivo手机截图&#xff0c; 将满屏图片文件移动别的路径好多这样的图片&#xff0c;占用手机大量的内存&#xff0c;食之无味弃之可惜&#xff01;那么会复制粘贴&#x1f440;代码的我们我们今天就把这些图片筛选清理掉。 这段代码 原有逻辑的基础上&…

基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(二)之知识收集阶段

前面学习了模型的构建与训练过程&#xff0c;然而在实验过程中&#xff0c;博主依旧对数据集与模型之间的关系有些疑惑&#xff0c;首先是论文说这是一个混合数据集&#xff0c;但事实上博主在实验时是将三个数据集分开的&#xff0c;那么在数据读取时是如何混合的呢&#xff0…

林沛满-Wireshark的提示

本文整理自&#xff1a;《Wireshark网络分析的艺术 第1版》 作者&#xff1a;林沛满 著 出版时间&#xff1a;2016-02 最近有不少同事开始学习 Wireshark&#xff0c;他们遇到的第一个困难就是理解不了主界面上的提示信息&#xff0c;于是跑来问我。问的人多了&#xff0c;我也…

如何一步步优化负载均衡策略

发展到一定阶段后&#xff0c;Web 应用程序就会增长到单服务器部署无法承受的地步。这时候企业要么提升可用性&#xff0c;要么提升可扩展性&#xff0c;甚至两者兼而有之。为此&#xff0c;他们会将应用程序部署在多台服务器上&#xff0c;并在服务器之前使用负载均衡器来分配…

第10章 MySQL(二)

10.11 请你说下你对ACID的理解 难度:★ 重点:★★ 白话解析 前面的题目搞明白了MySQL的原理、架构和索引,那接下来,我们捋一捋SQL在执行过程中的最核心的问题了——事务问题。 先搞明白事务的4个特性。 参考答案 1、A(Atomicity):原子性,就是一堆的SQL操作要么全部…

华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 运行内存情况 服务器被非法登陆尝试的解决

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;期间遇到各种问题&#xff0c;在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍SpringCloud相关组件——nacos和sentinel的安装和配置&#xff0c;并分析了运行内存情况&#xff0c;此…

数据在内存中的存储(1)

文章目录 目录1. 数据类型介绍1.1 类型的基本归类 2. 整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习 附&#xff1a; 目录 数据类型介绍整形在内存中的存储大小端字节序介绍及判断浮点型在内存中的存储 1. 数据类型介绍 前面我们已经学习了基本的内置类型以…

【数据结构】数据结构基础概念

系列文章目录 第一章&#xff1a;【数据结构】数据结构基础概念 文章目录 系列文章目录前言简介名词解释数据数据元素数据项数据对象数据结构数据类型抽象抽象数据类型算法算法设计要求 总结 前言 数据结构是软件编程的基础&#xff0c;是程序员的基本功。 简介 数据结构是一…

Ubuntu20配置Mysql常用操作

文章目录 版权声明ubuntu更换软件源Ubuntu设置静态ipUbuntu防火墙ubuntu安装ssh服务Ubuntu安装vmtoolsUbuntu安装mysql5.7Ubuntu安装mysql8.0Ubuntu卸载mysql 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程…

12、建立健全人员培训体系

9、大小屏分离与精细化审核 10、质量审核的设立与合并 11、视频分类建议 内容仓为公司其他部门输送了许多人才&#xff0c;既包括有潜力的主管&#xff0c;也有表现突出或者具备某些特殊能力的员工&#xff0c;从内容仓走出的同事&#xff0c;有些已经成为公司重要业务某个方…

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测 目录 回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测预测效果基本介绍模型描述程序设计预测效果 <

lv7 嵌入式开发-网络编程开发 11 TCP管理与UDP协议

目录 1 TCP管理 1.1 三次握手 1.2 四次挥手 1.3 保活计时器 2 wireshark安装及实验 3.1 icmp协议抓包演示 3.2 tcp协议抓包演示 3 UDP协议 3.1 UDP 的主要特点&#xff1a; 4 练习 1 TCP管理 1.1 三次握手 TCP 建立连接的过程叫做握手。 采用三报文握手&#xff1…

Fiddler抓取手机https包的步骤

做接口测试时&#xff0c;有时我们需要使用fiddler进行抓包分析&#xff0c;那么如何抓取https包。主要分为以下七步&#xff1a; 1.设置fiddler选项&#xff1a;Tools->Options,按如下图勾选 2.下载并安装Fiddler证书生成器 下载地址&#xff1a;http://www.telerik.com/…