C语言中对于char*p = “Hello”的理解 |
您所在的位置:网站首页 › char程序什么意思 › C语言中对于char*p = “Hello”的理解 |
根据《程序设计基础(C语言)》(第二版) 编著:高克宁 对字符串在第139页叙述: C语言中,字符串需要使用字符数组保存和描述。由于每个字符串都要以空字符('\0')结束,因此,声明一个存储字符串的字符数组时,必须保证字符数组的长度比字符串的长度至少多一个,用以存储字符串的结束符'\0'。 常用的以字符串做初值进行字符数组初始化的方式为: char c[] = {"Hello"}; 或 char c[] = "Hello"; 编译器将字符串"Hello"中的字符赋值到字符数组c中,然后追加到一个'\0',从而使数组c可以作为字符串使用,初始化后,字符数组包含6个元素,其中最后一个元素为'\0',称为字符串结束标志,其ASCII码值为0。 对指向字符串的字符指针在195页的叙述: 如果指针p指向字符串,则*p代表当前所指向的字符。 所以对于代码段 char*p = "Hello";可以做如下理解: 1、char str[6] = {'H','e','l','l','o','\0'}; 2、char* p = str; 但值得注意的是,并不能纯粹的这样进行理解:char* p = "Hello";相当于将一个字符内容为 "Hello\0" 的 字符数组 的首地址赋值给 字符指针。因为对于char* p = "Hello"; p[1] = 'A';对于C语言的编译器是不允许的,但是对于 char str[6] = {'H','e','l','l','o','\0'}; char* p = str; p[1] = 'A';对于C语言的编译器来说是允许的。 即通过字符指针直接指向的字符串是不能被修改的。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |