Chinaunix首页 | 论坛 | 博客
  • 博客访问: 434003
  • 博文数量: 103
  • 博客积分: 1455
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-15 22:17
文章分类

全部博文(103)

文章存档

2013年(4)

2012年(99)

我的朋友

分类: C/C++

2012-10-05 10:18:47

昨天在写c和指针的课后题时候总是编译不通过,是一个叫
incompatible assignment types 什么的错误,我将一个数组char a[100]
赋值一个字符串常量a="HUNDRED ";
会报错
如果改为
a[0]="HUNDRED ";
不会报错,但是运行结果打印字符串打不出任何东东
如果把a改成动态数组就像char *a=(char *)malloc(100);
就完全没有问题
纠结
 
    看完数组这一章感觉自己这个问题很可笑
 
    当a作为字符串数组时,数组的赋值应当在初始化时就做好,或者使用strcpy函数来赋值,a是一个const指针,不能被赋值
    当a作为一个char *指针的时候,可以赋值字符串常量,这样a就指向了字符串常量的地址,操作指针就能够获得字符串常量的值,而不是把常量写进malloc(size)的内存空间去,所以今天我把内存分配的函数malloc去掉了,还是可以编译通过很好的运行
惭愧
 
阅读(3338) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~