本文目录一览:
- 1、C语言对字符数组S赋值为什么 char s;s="beijing";错了
- 2、c语言字符数组赋值,这个为什么是错的:char s[10]; s="abcde"?
- 3、C语言中将字符串赋值给字符数组的问题
- 4、C语言怎样给字符数组赋值
- 5、C语言对字符数组S赋值为什么 char s[20];s="beijing";错了。那char s[20]={'b','e'};对吗
- 6、C语言对字符数组的赋值
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文件中