c语言定义一个字符串数组_字符指针变量和字符数组的区别

c语言定义一个字符串数组_字符指针变量和字符数组的区别C语言(数组和指针存储字符串)​​​​​​​创作内容不易,学习的朋友麻烦下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时sigusoft~~目录一.数组和指针1.字符串数组和字符数组区别2.数组存储字符串常量3.指针存储字符串二.数组和指

C语言(数组和指针存储字符串)   
c语言定义一个字符串数组_字符指针变量和字符数组的区别   ​​​​​​​创作内容不易,学习的朋友麻烦下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时sigusoft~~   目录   一.数组和指针   1.字符串数组和字符数组区别   2.数组存储字符串常量   3.指针存储字符串   二.数组和指针的区别   1.常量和变量   2.修改成本   3.存储成本   一.数组和指针   1.字符串数组和字符数组区别   char ch[]=”hello world”,末尾存储着0,就是字符串,相当于Char ch[]={‘h’,’e’,’l’,’l’,’o’,’ ‘,’w’,’o’,’r’,’l’,’d’,’0′}   Char ch[]={‘h’,’e’,’l’,’l’,’o’,’ ‘,’w’,’o’,’r’,’l’,’d’},字符数组(末尾并没有存储0)   这里的0属于char形式的空字符,不是数字字符0   字符数组因为没有’0’,所以系统在打印的时候是无法检测到结束的,啥时候能结束全靠啥时候能遇到一个’0’;   
c语言定义一个字符串数组_字符指针变量和字符数组的区别   演示代码:   这里可以看出来字符数组打印中会出现一段乱码部分。该演示代码,具体效果不固定,但基本原理一致。   2.数组存储字符串常量   数组形式,Char ch[]=”hello world”,ch在计算机的内存中分别为了一个内含12个素的数组(每个素对应一个字符,还加上一个末尾的空字符‘0’),每个素被初始化为字符串字面量对应的字符。   通常,字符串都作为可执行文件的一部分存储在数据段中。当把程序载入内存时,也载入了程序中的字符串。   字符串存储在静态存储区中,但是,程序在开始运行时才会为该数组分配内存,然后猜把字符串拷贝到数组中。注意此时字符串有两个副本。一个时在静态内存中的字符串字面量,另一个时存储在ch数组中的字符串。   
c语言定义一个字符串数组_字符指针变量和字符数组的区别   演示代码:   明示常量CHAR,“hello world”和字符串数组的内容都是一样,但首素地址是完全不同的,这也说明了ch存储的是”hello world”的副本。   3.指针存储字符串   指针形式,Char * ch = “hello world”也时得编译器为字符串在静态存储区预留12个素得数组。另外,一旦开始执行程序,它会为指针变量ch留出一个存储位置,并把字符串得地址存储在指针变量中。该变量最初指向该字符串得首字符。   
c语言定义一个字符串数组_字符指针变量和字符数组的区别 演示代码:   明示常量CHAR,“hello world”和指针P的内容都是一样,同时三者的首素地址也都是相同的。   二.数组和指针的区别   1.常量和变量   Char ch1[]=”hello world”   Char * ch2 = “hello world”   首先我们要理清一个逻辑,数组名就是首素的地址,这就意味着数组名是一个常量,如果我们对这个常量进行的更改,那么我们将无法在访问到这个字符串副本了。而指针属于变量,对于对于变量,指针所指向的地址是可以改变的   
c语言定义一个字符串数组_字符指针变量和字符数组的区别 演示代码:   这里其实我想演示下,但编译器已经报警,不让这样操作。   2.修改成本   因为指针指向字符串存储位置,所以该变一处就会直接影响字符串内容,所以一般推荐用   const Char * ch2 = “hello world” 保证字符串内容不会被改变   但数组因为存储的字符串副本,所以可以随意更改   
c语言定义一个字符串数组_字符指针变量和字符数组的区别   这里其实我想修改指针,但编译器已经报警,不让这样操作。   
c语言定义一个字符串数组_字符指针变量和字符数组的区别   所以这里我演示修改了数组ch,可以发现程序没有报警。   3.存储成本   因为数组存储的是副本,这就意味着它所需要的存储空间是个完整的字符串大小。但指针因为只存储字符串的首素地址,所以它一般只占用8个字节(或4个字节)   
c语言定义一个字符串数组_字符指针变量和字符数组的区别 演示代码:   所以根据上面三个区别,如果想要修改字符串内容,用数组。如果想要降低存储大小,就用指针   好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~   如果朋友你感觉文章的内容对你有帮助,可以点赞,文章和专栏以及我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈   
c语言定义一个字符串数组_字符指针变量和字符数组的区别

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/28512.html

(0)
上一篇 2024年 9月 12日
下一篇 2024年 9月 12日

相关推荐

关注微信