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明日花キララ:明日花绮罗年度... 23136
- 2明日花キララ(明日花绮罗)经... 13573
- 3家庭养花知识大全 家庭养花有... 8967
- 4兰花叶子扭的是什么兰 8701
- 5家庭养花风水知识 家庭养花“... 8684
- 6君子兰什么品种最名贵 十大名... 7963
- 7十大致癌花卉排行榜,哪些花卉... 7633
- 8五月天婷婷开心六月丁香:音乐... 7592
- 9秋天养花,掌握这5点养花知识... 7260
- 10【花卉知识 】养花须知:新手... 6861




