《c和指针》3.1.3 二 、字符串常量 :不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值

转载 2011年10月18日 17:58:44

原文:

你可以把字符串常量赋值给一个“指向字符的指针”,后者指向这些字符所存储的地址。

但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。


举例如下:
char s[20];
s="helo";//这样是错误的

char s[20];
char ss[]="hello";
s=ss;//这也是错误的


原因就是:你不能把字符串常量赋值给一个字符数组


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

而char a[ ]=”toyou“;为什么是正确呢???那是因为我们在声明数组变量的时候,就为其开辟空间,并为其初始化,这样才是符合c语言语法的。而上面的都是不符合语法的。


摘自:http://zhidao.baidu.com/question/183610522

不能用字符串给字符数组赋值

c和指针(《pointers on c》) 8.1.11 一个字符串,如"hello",一般为字符串常量,可以用它对字符指针赋值,或初始化,相当于把这个字符串常量的首地址赋给这个指针,如: ...
  • u010012590
  • u010012590
  • 2015-04-19 17:01:55
  • 130

字符串常量赋值导致的错误

下面的程序运行的时候出现段错误:char * str = "hello world"; (*str) += 32;原因:初始化时候虽然str是指针,但是指针指向的字符串“hello world”是常量...
  • fendoubasaonian
  • fendoubasaonian
  • 2015-11-06 16:10:00
  • 263

字符串赋值的两种形式的区别

字符串的表现形式有两种: 一种是以字符数组的形式,如char buf[20]="I love china"; 另一种是以字符指针的形式,如char *str="I love china"   ...
  • qq_16445683
  • qq_16445683
  • 2015-05-28 10:13:43
  • 1350

字符数组、字符串及常量字符串详解

总结关于字符数组、字符串的知识,虽然这些东西都是很基础的内容,但是不少人还是经常会在这些问题上犯错。以下是个人的一些总结,没有什么高端的内容,仅仅希望提醒自己在这些细节上不要再犯错。...
  • iamgaowei
  • iamgaowei
  • 2014-04-18 09:49:08
  • 2329

《c和指针》3.1.3 二 、字符串常量 :不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值

原文: 你可以把字符串常量赋值给一个“指向字符的指针”,后者指向这些字符所存储的地址。 但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。 ...
  • zx824
  • zx824
  • 2011-10-18 17:58:44
  • 3212

C语言中,为什么字符串可以赋值给字符指针变量

本文是通过几篇转帖的文章整理而成的,内容稍有修改: 一、 C语言中,为什么字符串可以赋值给字符指针变量 char *p,a='5'; p=&a;                  ...
  • ss19890125
  • ss19890125
  • 2015-09-23 22:08:12
  • 9200

字符串常量可以复制给字符指针

1,字符串常量可以赋值给字符指针,即用字符指针指向一个字符串。 因为在C语言中,字符串使按字符数组处理的,将字符串常量复制给字符指针,也就是将字符数组的首地址赋值给字符指针。 , 2,另外:函数...
  • zzh19811015
  • zzh19811015
  • 2013-03-17 21:41:46
  • 1310

字符串指针与字符数组的区别(一)--字符串常量的值不能改

经常犯错的知识点,以前也没有理解,这里再好好的记录下。要经常温固而知新。  用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。在使用时应注意以下几个问题: 1.     字符...
  • shengabc
  • shengabc
  • 2015-07-06 10:22:45
  • 1634

字符串字符数组的赋值

字符数组的定义与初始化 Char str[10] = {‘a’,‘b’,‘c’,‘d’,‘e’}; 如果说提供的字符的个数大于数组的长度,就按语法错误处理,如果小于数组的长度,不够的位置用空字符...
  • zongzidedandan
  • zongzidedandan
  • 2017-07-25 14:02:49
  • 248

字符串常量和字符数组的区分

首先我们来看个程序,这个程序说的是字符串函数strcat()函数的实现:#include #include #include #define MAX 20 char *my_strcat(char *...
  • qq_26768741
  • qq_26768741
  • 2016-04-16 12:53:29
  • 935
收藏助手
不良信息举报
您举报文章:《c和指针》3.1.3 二 、字符串常量 :不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值
举报原因:
原因补充:

(最多只允许输入30个字)