参考文章:c语言中,为什么字符串可以赋值给字符指针变量
1.可以将字符串赋值给指向字符的指针p,而不能将字符串赋值给一个字符数组。

char a[10]="hello";//正确的。
char a[10];a="hello";//错误的
char *a ="hello";//正确的

第一种写法:即char a[10],开辟了10个字节大小的空间,这里的字符串“hello"已经不是常量了,类似于a[0]=‘h’,a[1]=‘e’,a[2]=‘l’,a[3]=‘l’,a[4]=‘o’,a[5]=’\0’;它被存放在栈区。

第二种写法:a=“hello”,则是错误的;因为数组的地址a为一个常量,"hello"其实代表的是存储这些字符的地址,(位于常量区),而非代表字符本身。

如下所示:会报错:因为运算符的左边应该是一个“左值”。所谓“左值”就是指在程序中占用内存空间、可以被修改的量,比如各种变量。 而数组的地址:是一个确定的值。

第三种写法:"hello"位于常量区,即为常量字符串,”hello"是其实代表的是h首元素的地址;因为hello为常量字符串,更好的写法是: const char *a=“hello”;

struct PepInf
{int age;char name[10];char gender[10];
};
void InitPeo(struct PepInf *pc)
{pc->age = 20;pc->name = "tianxin";//报错!   1   IntelliSense:  表达式必须是可修改的左值。    pc->gender = "women";
}

c语言中赋值应该采取strcpy的方式,这里就不会出问题啦!

strcpy(pc->name, "tianxin");
strcpy(pc->gender, "女");

c语言中不能将字符串赋值给字符数组相关推荐

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

    问不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值." 那么str1="China"是不是错的? char a[ ]='toyou'; 为什么是正确的呢? ...

  2. C语言:字符串赋值给字符数组

    一个字符串可以赋值给一个字符数组,只要不定义这个字符数组的长度就行 例如: char a[]="Hello" 此时存在数组里面,也是一个字符一个位,不包括双引号 如果要输出时 就用 ...

  3. c语言如何赋值空字符串,c语言中如何给字符串数组赋值

    c语言中如何给字符串数组赋值 1.问题 这是我写的 struct student { int x; char name[10]; }; void main() { student st: st.nam ...

  4. C语言 —— 把字符指针中的字符串,存入字符数组中

    问题描述:有一个用字符指针表示的字符串char *str = "0 12";  有一个数组 char buf[128] = {0}; 现在需要将字符指针表示的字符串"0 ...

  5. C语言基础知识:字符串赋值

    C语言基础知识:字符串操作 链接: link. 字符串赋值的三种可行形式: 1.初始化时赋值字符串 char a[10]="hello"; char *a = "hell ...

  6. C语言中可以用字符串常量来,C语言字符串详解

    原标题:C语言字符串详解 字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串, ...

  7. java 汉字个数_java语言中如何获取字符串中汉字的个数

    java语言中如何获取字符串中汉字的个数? [实例描述] 字符串中可以包含数字,字母.汉字或者其他字符.使用Character 类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Cha ...

  8. c语言中用于判断ch是否是字符的表达式,最新C语言复习题集资料

    精品文档 C语言复习题集 一. 判断题 1-1.C语言程序是从源文件的第一条语句开始执行的. 正确答案:F 1-2.C语言中的变量名不区分大小写. 正确答案:F 1-3.若变量定义为double x; ...

  9. C语言补漏:字符串指针与字符数组传参

    字符串指针与字符数组传参 深信服的笔试上被吊打,其中对一道用指针做形参的题目印象十分深刻,借此恶补了一晚上指针,今天总结,以作警示. ​ 试想有如下情形,将一个字符串指针做形参赋值函数修改其字符串,函 ...

最新文章

  1. 什么是壳 - 脱壳篇01
  2. 总量迈过90万亿元关口 中国经济交出稳健答卷
  3. MVC与MVP简单对比
  4. pcl和opencv多版本共存
  5. java 随机生成图,Java中的快速实值随机生成器
  6. 【Linux】linux下查看目录所在分区
  7. htmltoExcel
  8. 手机MODEM 开发(33)---SIM卡基础知识
  9. Pycharm+Django之Django学习(1)(初学者)
  10. 【SharePoint】SharePoint页面中添加webpart时提示找不到类型或该类型未注册为安全类型解决方案
  11. 学习日志-《微习惯》心得
  12. VOC数据集简介与制作
  13. 【网络流24题】火星探险问题
  14. Android UserManager.isUserAGoat() 的正确用例?
  15. jQuery 流星雨特效
  16. Gunicorn-配置详解
  17. 常见的加密算法以及加密协议
  18. 联想小娜怎么开启_Win10下小娜打不开的解决方法
  19. 数据的黑暗陷阱是什么?——你想要一匹更快的马,还是一辆汽车?
  20. python标题行_添加标题行_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

热门文章

  1. 全网惟一面向软件测试人员的Python基础教程-在Python中如何优雅的切西瓜呢?
  2. 数据库 の 联表查询
  3. Linux:查看内存与清理缓存
  4. python中不可变数据类型有_Python中的可变数据类型有____,不可变数据类型有____。_学小易找答案...
  5. Java构造函数调用顺序问题
  6. Unity Window触摸屏电脑和移动端Input触控,控制相机旋转缩放
  7. flash swf 文件宽高修改
  8. Python-调试(各种方式)
  9. Jquery 数组序列化
  10. 如何调整Linux系统为正确时区