VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 207|回复: 2

[已解决]char*char[]

[复制链接]
24_avatar_middle
最佳答案
0 
在线会员 发表于 2021-10-9 00:31:40 | 显示全部楼层 |阅读模式
为什么char*表示字符串,char*char[]的区别?
最佳答案
39_avatar_small
2021-10-9 09:43:10
本帖最后由 取名难 于 2021-10-9 09:56 编辑

char* 是一个指针,指针存放的都是地址,char*放的是char型数据的地址,就是字符串的地址 ,计算机会以这个地址为起始点一直往后读,直到遇到‘\0’为止这一串数据当成个整体,被你使用。
你问的应该是char* 和char[]的区别吧,
char[]是字符数组,存放了char型变量的数组,数组的大小,根据你[]内你申请的内存大小或者初始化的时候的元素个数所决定的,数组名相当于这块内存的起始地址
指针和数组两者,都是通过地址来操作数据的,通过指针间接访问那块内存,数组直接访问,两者没有太大差别,看你个人习惯

Ps:char * a = “abc”;//这种定义指针指向的内存在常量区,常量区的数据可以读取但是不能修改,数据大小为4,它会在末尾自动加上'\0',
        char b[10] = {a,b,c};
        char *c = b;//用指针指向数组,当你对它使用字符串操作的时候,需要在末尾加上'\0',计算机才知道你的数据末尾在哪里,不然它会一直往下查找,容易访问越界,导致段错误。




上一篇:MFC两个对话框传递信息
下一篇:如果有c++的人工智能教程就好了}
75_avatar_middle
最佳答案
21 
online_supermod 发表于 2021-10-9 07:52:10 | 显示全部楼层
字符串指针和字符串指针数组的区别
39_avatar_middle
最佳答案
2 
在线会员 发表于 2021-10-9 09:43:10 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 取名难 于 2021-10-9 09:56 编辑

char* 是一个指针,指针存放的都是地址,char*放的是char型数据的地址,就是字符串的地址 ,计算机会以这个地址为起始点一直往后读,直到遇到‘\0’为止这一串数据当成个整体,被你使用。
你问的应该是char* 和char[]的区别吧,
char[]是字符数组,存放了char型变量的数组,数组的大小,根据你[]内你申请的内存大小或者初始化的时候的元素个数所决定的,数组名相当于这块内存的起始地址
指针和数组两者,都是通过地址来操作数据的,通过指针间接访问那块内存,数组直接访问,两者没有太大差别,看你个人习惯

Ps:char * a = “abc”;//这种定义指针指向的内存在常量区,常量区的数据可以读取但是不能修改,数据大小为4,它会在末尾自动加上'\0',
        char b[10] = {a,b,c};
        char *c = b;//用指针指向数组,当你对它使用字符串操作的时候,需要在末尾加上'\0',计算机才知道你的数据末尾在哪里,不然它会一直往下查找,容易访问越界,导致段错误。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-23 15:37

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表