您的位置:

c语言对字符数组s赋值为什么,定义一个名为s的字符型数组,并且赋值为字符串"abc"

本文目录一览:

C语言对字符数组S赋值为什么 char s;s="beijing";错了

char s; 表示变量s的类型是字符型,只能存储一个字符,比如s ='a'; 而"beijing"是字符串,因为变量类型不匹配则不行。若要这样可以使用数组,char s[]="beijing";这表示s是一个字符数组,里面的单个数据的类型为字符。s[0]='b',s[1]='e',.....

c语言字符数组赋值,这个为什么是错的:char s[10]; s="abcde"?

从语法上来讲,这个赋值是不行的,可以写成char s[10]="abcde";

我们来深入研究下这种赋值为什么不行;假设上面的语句都合法,那么char s[10],将会分配内存,大小为10字节,假设分配的内存地址为a1,此时s就代表数组的首地址,所以s=a1;现在看第二个语句s="abcde","abcde"也会在内存中分配空间,假设地址为a2,那么执行s="abcde"后就变成了s=a2,那岂不是和之前s=a1冲突?所以C语言是不允许这样的赋值的。

C语言中将字符串赋值给字符数组的问题

char s[20];s="helo";这样错误的原因就是:不能用赋值语句将一个字符串常量直接给一个字符数组赋值。

char s[20];

char ss[]="hello";

s=ss;错误原因是:不能用赋值语句将一个字符数组直接给一个字符数组赋值

,即字符串的复制(c语言中,但是在c++的string 类,上面的赋值是正确的)必须用strcpy()函数实现。

而char a[ ]=”toyou“;正确的原因是:因为在声明数组变量的时候就是,为其开辟空间,并为其初始化,这样才是符合c语言语法的。

扩展资料:

C语言中字符串赋值的理解

一、指针式赋值

上面的示例是显然可以正常执行的,也是很容易理解的。但是下面这种方式就令人有点难以理解了。

通过程序的运行情况,我们可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,我们首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:

(1)申请了空间(在常量区),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

这里所返回的地址就赋值给了char *类型的指针变量p。

二、通过字符数组直接把字符串赋值。程序如下:

三、需要注意的一些问题

直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。

C语言怎样给字符数组赋值

1、单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值。

例子:

char a[10];

char ch='a';

for( i=0;i10;i++ )

a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值

char *p;

for( p=a; pa+10; p++ )

*p=ch++; //通过指针对数组相应元素赋

2、字符串赋值,可使用string.h头文件中的字符串操作函数进行赋值。

例子:

char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

扩展资料:

C语言给字符数组赋值的优点:

1、简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2、运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

参考资料:百度百科 C语言基础语句

C语言对字符数组S赋值为什么 char s[20];s="beijing";错了。那char s[20]={'b','e'};对吗

第一,字符串的赋值应该是strcpy(s,"beijing"); (该函数包含在头文件string.h中)

第二,你可以直接在开始就初始化char s[20]="beijing";

char s[20]={'b','e'};是对的,但没必要那么麻烦

你可以百度 字符数组赋值 第一个就说的比较全

C语言对字符数组的赋值

在C语言中,字符串赋值是不能用=的.只能在定义的时候使用.在定义后赋值要用赋值函数strcpy().你的程序中可以使用strcpy(str,"I love china!")来完成.这个函数声明包含在string.h文件中

c语言对字符数组s赋值为什么,定义一个名为s的字符型数组,并

2023-01-08
c语言字符串,c语言字符串定义

2022-11-22
c语言字符串数组未被赋值的,c语言,定义一个数组不赋值,输出

2022-11-29
c语言求字符串定义,c语言中怎样定义字符串

2022-12-01
c语言字符串可以重新赋值吗,C语言中字符串赋值

2022-11-22
c语言我的字符串无法赋值,c语言没有赋值

2022-12-02
c语言c数组赋值,c语言数组赋值数组

2022-11-26
c语言里的符串,c语言里的字符串

2022-11-30
c语言字符串怎么声明,c语言定义一个字符串

2022-12-02
c语言数组和字符串方法,字符串数组C语言

2022-11-27
c语言字符串数组的初始化,c 字符数组初始化

2023-01-05
c语言字符串变量相互赋值,c语言可以把一个字符串赋给字符变量

2023-01-05
c语言字符数组程序,c语言字符数组的使用

2022-11-25
c语言赋值值号,c语言赋值字符

2022-11-25
如何定义字符串c语言,c语言里怎么定义字符串

2023-01-06
c语言字符数组for循环赋值,C++字符数组赋值

2022-11-24
c语言简单符串,c语言字符串赋值

2022-11-25
如何给数组赋值c语言,数组赋值C语言

2023-01-07
c语言将单个字符转化为字符串,c语言 字符串转单个字符

2022-12-01
c语言中s的含义,C语言%s是什么意思

a、c语言中(*s).s意思 1、在C语言中,(*s).s表示一个结构体指针。在这里,s是一个指向结构体的指针,通过指针s来访问结构体中的成员变量s。这种表示方法常用于操作结构体数据。 2、例如,我们

2023-12-08