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

简介:

如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。根据偏移量而定。

 


目录
相关文章
|
2月前
|
API Windows
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
|
4月前
|
开发者 Python
Python函数参数定义中的这两个分隔符,还有人不知道吗?
python 函数的参数定义想必大家应该是非常熟悉的,有两种: • 位置参数(positional argument):根据函数在参数列表中的位置传递给函数的参数。 • 关键词参数(keyword argument):通过指定参数名称及其对应值传参的参数。
|
6月前
如何去掉字符串中文括号及其内部的内容三种方式
如何去掉字符串中文括号及其内部的内容三种方式
224 0
|
C语言
学C的第二天(变量‘补充’;简单了解常量,字符串,转义字符,注释,if选择语句,while循环语句)(1)
4.4*变量的使用(上期继续补充): 字符类型: %c - 字符类型 %d - 整型 %s - 字符串 %f - float类型 %lf - double类型
104 0
|
开发者 Perl
正则表达式中的模式修正符S和M 妙用!
教你如何正确使用正则表达式中的模式修正符S和M!
67 0
正则表达式中的模式修正符S和M 妙用!
|
机器学习/深度学习 Cloud Native Go
779. 第K个语法符号:简单模拟
这是 力扣上的 779. 第K个语法符号,难度为 中等。
【STM32】【vscode编译】 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
【STM32】【vscode编译】 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
436 0
|
Python
vscode编译 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
vscode编译 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
554 0
|
JavaScript
js数组与字符串的相互转换,排除某个符号或文字
js数组与字符串的相互转换,排除某个符号或文字
160 0
Swift5.1—字符串前缀/后缀相等
Swift5.1—字符串前缀/后缀相等
271 0