#include<stdio.h>
int main()
{
char arr[] = "abcdef";
char *ptr = arr;
while(*ptr != '\0')
++*ptr++;
printf("%s %s",arr,ptr);
return 0;
}
输出:bcdefg
它正在打印给定的每个字母的下一个字母。到底是什么情况?
这里有三个运算符后缀++
,前缀++
和间接*
。
后缀++
具有比其他两个更高的优先级,并且将首先进行评估。但是,当使用后缀时++
,将在更新存储的值(即增加指针)的副作用之前对值计算进行排序。因此指针ptr
将递增,但其他两个操作数++
和中使用的值*
将是旧的。
前缀++
和间接运算符具有相同的优先级,但是从右到左求值。因此,间接*
寻址首先进行,然后前缀++
使对象指针ptr
指向的值递增。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句