C语言中的string + int是什么意思?

9
我无法理解这个表达式:
str + n

这里涉及到一个 char str[STRING_LENGTH]int n

我在 Java 中工作了很多,一直以为它是字符串和整数的拼接,但现在我开始怀疑。

它具体是什么意思呢?

3个回答

11

这是指针算术。例如:

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

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


7

str可以被视为指向长度为STRING_LENGTH的字符序列相关内存地址的指针。因此,在您的语句str + n中利用了指针算术。它所做的是指向字符序列中第n个字符的内存地址。


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);

愉快的编码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接