string + int在C中执行什么操作?

Abh*_*kur 6 c string pointers

我无法弄清楚这个表达方式:

str + n
Run Code Online (Sandbox Code Playgroud)

在哪里char str[STRING_LENGTH]int n.

我在Java中已经做了很多工作,直到现在才假设它是字符串和整数的串联,我现在怀疑它.

这是什么意思?

Yu *_*Hao 10

它是指针算术.例如:

char* str = "hello";
printf("%s\n", str + 2);
Run Code Online (Sandbox Code Playgroud)

输出:llo.因为str + 2指向后面的2个元素str,因此第一个l.


Bat*_*eba 7

str可以看作是指向一个长度为STRING_LENGTH的字符序列关联的内存地址。因此,您的语句中正在利用c 指针算法str + n。做的是指向字符序列中n第th个字符的内存地址。