我无法弄清楚这个表达方式:
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.
str可以看作是指向一个长度为STRING_LENGTH的字符序列关联的内存地址。因此,您的语句中正在利用c 指针算法str + n。做的是指向字符序列中n第th个字符的内存地址。