百科狗-知识改变命运!
--

字符串和数组的区别?

乐乐1年前 (2023-12-15)阅读数 20#综合百科
文章标签字符串字符

执行赋值语句a="123"+"456"后,变量a的值是"123456"。

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。通常以双引号内部的整体作为操作对象。字符串的连接运算语句公式为s1+s2+s3+…+sn。因此,"123"和"456"是字符串,a为字符串拼接结果即"123456"。

扩展资料:

字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。

String类不可变,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

字符指针变量和字符数组的区别:

简单说一下:

字符串数组是用来存放字符串的数组,在内存中占一段连续的单元。所占内存存放的是字符串。定义方法为:char a[N];N为常量表达式,可初始化。字符指针是指向字符的指针,所占内存单元存放的是所指字符的内存单元。定义方法为:char *p;

完整的解答:

1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的地址(字符串第一个字符的地址),决不是将字符串放到字符指针变量中

2)赋值方式

对于字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值:

char str[14];

str = "I love you!";

而对于字符指针变量,可采用如下赋值:

char *a;

a = "I love you!";

赋值给a的是字符串第一个元素的地址

3)对字符指针赋初值

char *a = "I love you!";

等价于

char *a;

a = "I love you!";

而对数组的初始化:

char str[14] = {"I love you!"};

不等价于

char str[14];

str = "I love you!";

4)如果定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址

char *a, str[10];

a = str;

scanf("%s", a);

先使a有确定值,即使a指向一个数组的首元素,然后输入一个字符串,把它存放在以该地址开始的若干单元中

5)指针变量的值是可以改变的,而数组名是常量

6)用指针变量指向一个格式字符串,可以用它代替printf函数的格式字符串

char * format;

fomat = "a = %d, b = %f\n"

printf(format, a, b);

相当于

printf("a = %d, b = %f\n", a, b);

因此只要改变printf所指向的字符串,就可以改变输入输出格式,这种printf函数称为可变格式输出函数

也可以用字符数组实现:

字符串和数组的区别?

char format[];

format = "a = %d, b = %f\n"

可以看出,用指针变量指向字符串更简洁

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)