(六十七)前缀、后缀运算符号在其他地方的使用

简介:

如i++,是后缀; ++i,是前缀。

这种可以用在其他地方,比如指针。

代码1:


#include<iostream>
#include<string>

int main()
{
	using namespace std;
	int i=1;
	string a = "abcdefg";
	cout << a[0] << endl;	//显示string类字符串的第一个字母
	cout << char(++a[0]) << endl;	//++a[0]和a[0]+1是等价的,显示这个字符串的第二个字母,
	//之所以用char括起来,是因为将之强制转换为字符显示
	system("pause");
	return 0;
}


输出:

a
b
请按任意键继续. . .

注意:

①a[0]是一个整体,所以需要++a[0]或者a[0]++

 

②因为是++a[0],所以是先加再显示。

 

③a[0]实际上是一个内存地址,因此才可以操纵地址偏移。另外需要注意的是,a[0]是一个字符宽,所以偏移的时候也是偏移一个字符宽

 

 

代码2:


#include<iostream>
#include<string>

int main()
{
	using namespace std;
	int i=1;
	string a = "abcdefg";
	cout << a[0] << endl;	//显示string类字符串的第一个字母
	cout << char(a[0]++) << endl;	
	cout << char(a[0]++) << endl;	
	cout << a[0] << endl;
	//之所以用char括起来,是因为将之强制转换为字符显示
	system("pause");
	return 0;
}

输出:


a
a
b
c
请按任意键继续. . .

注意:

①在代码2里。我们使用了a[0]++,因为后缀的原理,先输出,再加1。

于是在第一次cout << char(a[0]++) << endl;里面,输出的依然是a;

第二次输出的才是b;

而第三次没有使用后缀,但由于第二次已经加过了(即地址偏移了),所以cout<<a[0]<<endl;输出的是c。

 

②依然需要注意,字符串名,实际上是字符串的地址,a是整体"abcdefg"的地址,而a[0]是一个字符的地址,且是第一个字符。但偏移后就不一定是第一个字符a了,可能是b或者c。根据偏移量而定。

 


目录
相关文章
数组外面包了引号,怎么去掉外面的引号,变成原来的数组
数组外面包了引号,怎么去掉外面的引号,变成原来的数组
65 0
|
存储 机器学习/深度学习 Java
数组的定义和使用(全是干货)
数组的定义和使用(全是干货)
196 0
|
6月前
|
API Windows
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
|
8月前
|
开发者 Python
Python函数参数定义中的这两个分隔符,还有人不知道吗?
python 函数的参数定义想必大家应该是非常熟悉的,有两种: • 位置参数(positional argument):根据函数在参数列表中的位置传递给函数的参数。 • 关键词参数(keyword argument):通过指定参数名称及其对应值传参的参数。
|
10月前
如何去掉字符串中文括号及其内部的内容三种方式
如何去掉字符串中文括号及其内部的内容三种方式
374 0
|
10月前
|
C语言 C++
每天一道C语言编程:(去掉:双斜杠注释,去掉空格)
每天一道C语言编程:(去掉:双斜杠注释,去掉空格)
74 0
|
10月前
|
算法 Java
Java【算法分享 03】实用算法分享(拼写inStr、去掉字符串后边特定值、三者最小、计算表达式的值)不断增加中ing
Java【算法分享 03】实用算法分享(拼写inStr、去掉字符串后边特定值、三者最小、计算表达式的值)不断增加中ing
68 0
中缀表达式转前缀或后缀并计算结果 2021-04-28
中缀表达式转前缀或后缀并计算结果 2021-04-28
|
API vr&ar 图形学
【Unity3D 灵巧小知识点】 ☀️ | 字符串截取,截取某个路径字符串中 末尾文件 的名字
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。