首页 分享 C语言中对于char*p = “Hello”的理解

C语言中对于char*p = “Hello”的理解

来源:花匠小妙招 时间:2024-11-12 04:16

根据《程序设计基础(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语言编程:求水仙花数。输入一个

推荐分享