Char数组和c中“-=”的用法

问题描述 投票:-1回答:1

下面的代码从字符串中删除了第7个字符,但我无法弄清楚,但有人可以向我阐明数组和S1[6] -= S1[6];之类的操作的一般逻辑。我搜索了数组算术,但它与地址算术和指针有关。感谢您的帮助。

#include <string.h>
int main()   
{ char S1[]="Hello World";   
S1[6] -= S1[6];
printf("%s",S1);
}
c arrays
1个回答
2
投票

声明

 S1[6] -= S1[6];

可以读为

S1[6] = S1[6] - S1[6];

因此,基本上,它减去数组实例本身的值,从而得出第七。元素为0。

但是,这不会更改数组中任何其他元素的值(不像您提到的“第7个字符及以后的字符..”),它只是将第7个元素的值设为0,即终止string

的空字符。因此,在修改之后,当您将数组传递给需要字符串的函数时,最多空终止符仅为visible
© www.soinside.com 2019 - 2024. All rights reserved.