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

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

str + n 

其中char str[STRING_LENGTH]int n

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

这是什么意思?

它是指针算术。 例如:

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

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

str可以被视为指向与长度为STRING_LENGTH的字符序列相关联的存储器地址。 因此,在语句str + n正在利用c指针算法 。 正在做的是指向字符序列中第n 字符的内存地址。

是的@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); 

快乐的编码。