C中char s []和char * s之间的区别
我们已经看到,有时使用chars[]来构造字符串,或者有时使用char*s来构造字符串。所以在这里我们将看到有什么不同还是相同?
有一些区别。s[]是一个数组,但是*s是一个指针。例如,如果两个声明分别类似于chars[20]和char*s,则通过使用sizeof()我们将得到20和4。第一个将为20,因为这表明有20个字节数据的。但是第二个只显示4,因为这是一个指针变量的大小。对于数组,总字符串存储在堆栈部分中,但是对于指针,指针变量存储在堆栈部分中,内容存储在代码部分中。最重要的区别是,我们无法编辑指针类型字符串。因此,这是只读的。但是我们可以编辑字符串的数组表示形式。
示例
#include<stdio.h>
main() {
char s[] = "Hello World";
s[6] = 'x'; //try to edit letter at position 6
printf("%s", s);
}输出结果
Hello xorld Here edit is successful. Now let us check for the pointer type string.
示例
#include<stdio.h>
main() {
char *s = "Hello World";
s[6] = 'x'; //try to edit letter at position 6
printf("%s", s);
}输出结果
Segmentation Fault
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短