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);
快乐的编码。