字符数组

本文介绍了C语言中字符数组和字符串指针的区别和使用方法,包括它们的初始化、赋值、类型以及在内存中的处理方式。通过实例展示了字符数组不能整体赋值,而字符指针可以,同时强调了字符数组名是常量,不可改变,而指针变量的值可以改变。最后,提到了字符串常量在不同情况下的存储位置和sizeof运算符的应用。
摘要由CSDN通过智能技术生成

昨天在写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去掉了,还是可以编译通过很好的运行
1.字符指针可以指向一个字符串。
我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:
char *str = “This is a string.”;
是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。
这里要注意字符指针与字符数组之间的区别。例如,有说明语句:
char string[ ]=”This is a string.”;
此时,string是字符数组,它存放了一个字符串。
字符指针str与字符数组string的区别是:str是一个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值