全站数据
8 4 2 0 5 8 1

串和数组的区别

考研小博士 | 简单学习,快乐成才!         
问题更新日期:2024-10-13 04:59:00

问题描述

串和数组的区别,麻烦给回复
精选答案
最佳答案

区别1:

字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘

0’作为串的结束。

字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。

区别2:

对字符串指针方式 char *ps="C Language"; 定义时可以写为:

char *ps;

ps="C Language";

而对数组方式: static char st[]={"C Language"}; 只能对字符数组的各元素逐个赋值,不能写为:

char st[20];

st={"C Language"};

这是因为,字符串指针变量只是一个指向字符串首地址的指针变量,我们可以对指针变量进行赋值,确定其指向的地址空间;

而字符串数组在定义时便在内存中为其分配了空间,也就是说,我们不能随意的改变这个数组的地址。

区别3:

我们通过一个小程序来认识这个区别。

#include <stdio.h>

#include <string.h>

int main()

{

char c1[] ="helloworld";

char *c2 = "helloworld";

printf("sizeof(s1) :%d %d

", sizeof(c1), sizeof(c2));

printf("strlen(s2) :%d %d

", strlen(c1), strlen(c2));

return 0;

}

这段程序运行的结果是:

"helloword"一共10个字符,所以strlen的值都为10;

差别体现在sizeof的值。用字符串数组定义的"helloword"占11个字节,是因为"helloword"加上结尾的"

0"一共十一个char型字符,每个char型字符占1个字节;

而用字符串指针变量定义时,sizeof的值仅为4个字节,这是因为s2是一个指针,在32位系统中,地址占4个字节。

其他回答

字符数组内任意位置可写任意数据包括0x0,而字符串只有结束的位置有一个0x0,一但有了0x0这个数据,则字符串结束。对电脑而言只有二进制字节数组;对人脑才有字符、字符串、空字符结束符、数组等。

1、字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。

2、例:

char c[10];

c[0]='I'; c=' '; c='l'; c='o'; c='v'; c='e'; c=' '; c[7]='y'; c[8]='o'; c[9]='u';

以上定义了c为字符数组,包含10个元素。

由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:

int c[10];

但这时每个数组元素占2个字节的内存单元,浪费存储空间。

字符数组也可以是二维或多维数组,例如:

char c[10];

即为二维字符数组。

3、字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

其他回答

区别一:定义不一样

1、字符串指针变量本身是一个变量,用于存放字符串的首地址。字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘

0’作为串的结束。

2、字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。

区别二:对字符串指针方式不同

1、char *ps=”C Language”;可以写成char *ps;ps=”C Language”;

2、数组方式char st[]={”C Language”};不能写成char st[20];

St={”C Language”};只能对字符数组的各元素逐个赋值。

扩展资料

字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的。

如s=“abcdefghij”,则s=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。

多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。