字符指针 字符数组_字符,字符串,字符数组,字符串数组

字符指针 字符数组_字符,字符串,字符数组,字符串数组解惑丨C语言字符串常量、字符数组、字符指针!如果你被这几个概念搞的头晕目眩,貌似懂了,但没完全懂。想通过理解的方式去搞清楚,而不是通过记性来记住。突然就发现了一句万能钥匙【基础】,能解决大部分跟指针相关的概念问题:「指针存储的是地址」一、代码二、字符串常量定义:用双引号(“”)括起来

解惑丨C语言字符串常量、字符数组、字符指针!   如果你被这几个概念搞的头晕目眩,貌似懂了,但没完全懂。   想通过理解的方式去搞清楚,而不是通过记性来记住。   突然就发现了一句万能钥匙【基础】,能解决大部分跟指针相关的概念问题:   「指针存储的是地址」   一、代码   
字符指针 字符数组_字符,字符串,字符数组,字符串数组   二、字符串常量   定义:用双引号(“”)括起来的0个或者多个字符组成的序列   存储:每个字符串尾自动加一个 ‘0’ 作为字符串结束标志   ————————————   字符串常量在内存的常量存储区是按顺序存储的,如:
字符指针 字符数组_字符,字符串,字符数组,字符串数组
字符指针 字符数组_字符,字符串,字符数组,字符串数组   ▷ 定义a时,判断存储区是否有”1230″,存储一个”1230″;   ▷ 定义b时,判断存储区是否有”4560″,发现没有则在后面追加”4560″;   ▷ 定义c时,判断存储区是否有”4560″,发现有,则不再存储,此时b和c两个指针存储的都是”4560″这片内存地址【编译器优化】   既然是常量,那么不可被修改,所以memcpy(b, a, 3);是错误的   三、字符数组   char a[] = “123”;   首先声明一个字符数组a,大小没有确定,但是将一个字符串常量“1230”赋值给了a,故a的length就是4个字节。   注意a归根结底是一个数组,而数组是一个变量,不是指针,虽然可把a当做一个指针,因为它指向数组的首地址,但归根结底不是指针,指针存的是地址,变量存的是指…又晕了   正因为a是变量,所以a能够修改其存储的值。   a[0] = ‘a’;   四、字符指针   const char* b = “321”;   既然名字是字符指针,那么它一定是个指针,根据万能钥匙能够得知,指针存储的地址。   故解读这句就是:   首先声明一个字符指针b,然后定义一个字符串常量”3210″,字符串常量存储在常量区,b存储在栈区,b的值是字符串常量”3210″的地址。   这里用到了const,在C语言里不加const也行,C++里不加会有个警告,但不影响编译。但是建议加上const,能够让程序员一眼就知道此指针指向的是常量,也就是最终内容无法修改。   ps:   const type* p;   虽然最终指向不能修改,但是指针自身的取值,是可以修改的,即可修改指针指向的地方。
字符指针 字符数组_字符,字符串,字符数组,字符串数组   五、内存图   
字符指针 字符数组_字符,字符串,字符数组,字符串数组   ps:所有存储类型代码区、常量区、静态区(全局区)、堆区、栈区,只有栈是从高地址往低地址存储,其他都是低地址往高地址存储。   根据这个,打印一个栈变量地址是0x7,大概能够猜到此pc的内存条大小为8GB【纯猜测未验证】!
字符指针 字符数组_字符,字符串,字符数组,字符串数组   不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~   【值得】UP主页 的 编程学习交流俱乐部 !
字符指针 字符数组_字符,字符串,字符数组,字符串数组   C语言入门资料(网盘链接免费分享):
字符指针 字符数组_字符,字符串,字符数组,字符串数组   C语言推荐书籍(PDF免费分享):
字符指针 字符数组_字符,字符串,字符数组,字符串数组

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

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

(0)
上一篇 2024年 9月 13日 下午6:02
下一篇 2024年 9月 13日

相关推荐

关注微信