mirror of
https://github.com/wangdoc/clang-tutorial.git
synced 2026-02-03 19:03:44 +08:00
docs(): fixed #19
This commit is contained in:
@@ -133,6 +133,14 @@ s[0] = 'z';
|
||||
|
||||
为什么字符串声明为指针时不能修改,声明为数组时就可以修改?原因是声明为指针时,字符串是一个保存在内存“栈区”(stack)的常量,“栈区”的值由系统管理,一般都不允许修改;声明为数组时,字符串的副本会被拷贝到内存“堆区”(heap),“堆区”的值由用户管理,是可以修改的。
|
||||
|
||||
为了提醒用户,字符串声明为指针后不得修改,可以在声明时使用`const`说明符,保证该字符串是只读的。
|
||||
|
||||
```c
|
||||
const char* s = "ello, world!";
|
||||
```
|
||||
|
||||
上面字符串声明为指针时,使用了`const`说明符,就保证了该字符串无法修改。一旦修改,编译器肯定会报错。
|
||||
|
||||
第二个差异是,指针变量可以指向其它字符串。
|
||||
|
||||
```c
|
||||
|
||||
Reference in New Issue
Block a user