C语言 将整数加到字符串中

osh3o9ms  于 2023-05-22  发布在  其他
关注(0)|答案(1)|浏览(191)

我用c写了这段代码,它工作正常。

char* str2 = string + (str_len - end_len);

str_lenend_len是两个整数,string是另一个字符指针字符串。
我不明白为什么我能把一个整数加到一个字符指针串上。
这不应该给予一个类型错误吗?

zwghvu4y

zwghvu4y1#

str2的指针值为string + (str_len - end_len)。如果offset = str_len - end_lensize of string(array)+ 1,则它是未定义的行为(注意< 0 or offset >:sizeof "hello "计算字符串的尾部'\0',因此是-1)。下面是一个例子:

#include <stdio.h>

int main() {
    char string[] = "hello world";
    char *str2 = string + (sizeof "hello " - 1);
    printf("%s\n", str2);
}

打印:

world

相关问题