C语言中对于char*p = “Hello”的理解
根据《程序设计基础(C语言)》(第二版) 编著:高克宁
对字符串在第139页叙述:
C语言中,字符串需要使用字符数组保存和描述。由于每个字符串都要以空字符(' ')结束,因此,声明一个存储字符串的字符数组时,必须保证字符数组的长度比字符串的长度至少多一个,用以存储字符串的结束符' '。
常用的以字符串做初值进行字符数组初始化的方式为:
char c[] = {"Hello"};
或
char c[] = "Hello";
编译器将字符串"Hello"中的字符赋值到字符数组c中,然后追加到一个' ',从而使数组c可以作为字符串使用,初始化后,字符数组包含6个元素,其中最后一个元素为' ',称为字符串结束标志,其ASCII码值为0。
对指向字符串的字符指针在195页的叙述:
如果指针p指向字符串,则*p代表当前所指向的字符。
所以对于代码段 char*p = "Hello";可以做如下理解:
1、char str[6] = {'H','e','l','l','o',' '};
2、char* p = str;
但值得注意的是,并不能纯粹的这样进行理解:char* p = "Hello";相当于将一个字符内容为 "Hello " 的 字符数组 的首地址赋值给 字符指针。因为对于char* p = "Hello"; p[1] = 'A';对于C语言的编译器是不允许的,但是对于 char str[6] = {'H','e','l','l','o',' '}; char* p = str; p[1] = 'A';对于C语言的编译器来说是允许的。 即通过字符指针直接指向的字符串是不能被修改的。
相关知识
=a在c语言中是什么意?c!=a在c语言中是什么意思 爱问知识人
c语言中 %=、
C语言:输出所有的水仙花数
int f(char *s) { char *p=s; wh
广东海洋大学C程序设计试卷(第1套)
C语言字符串转数字的5种方法(附带示例)
【六一语言学】儿童语言中的可爱语法
3012C语言
2021年1月学考选考技术知识点之字符串问题
关于mysql字符串的存储之char,varchar类型
网址: C语言中对于char*p = “Hello”的理解 https://www.huajiangbk.com/newsview501861.html
上一篇: C语言中 |
下一篇: C语言编程:求水仙花数。输入一个 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039