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

时间:2013-10-09 07:10:01

标签: c string pointers

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

str + n

其中char str[STRING_LENGTH]int n

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

这是什么意思?

3 个答案:

答案 0 :(得分:10)

它是指针算术。例如:

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

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

答案 1 :(得分:4)

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

答案 2 :(得分: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);

快乐编码。