8

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

str + n

哪里char str[STRING_LENGTH]int n

我在 Java 中做了很多工作,并且一直假设它是字符串和整数的连接,我现在对此表示怀疑。

这是什么意思?

4

3 回答 3

11

是指针算法。例如:

char* str = "hello";
printf("%s\n", str + 2);

输出:llo。因为str + 2指向 2 之后的元素str,所以是第一个l

于 2013-10-09T07:13:31.983 回答
7

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

于 2013-10-09T07:12:44.240 回答
4

是的 @Yu Hao 和 @Bathsheba 是正确的。
但是如果你想做连接,你可以按照下面的代码片段。

char string[]="hello";
int number=4;
char cated_string[SIZE_CATED_STRING];
sprintf(cated_string,"%s%d",string,number);
printf("%s",cated_string);

快乐编码。

于 2013-10-09T07:50:36.703 回答