两种字符串定义方式有何不同?

wave2001 2001-10-18 08:39:27
c中,字符串可以有两种方式来定义:
char *str="hello"
char str[10]="hello"
他们有什么本质上的不同呢?
...全文
510 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tompage 2001-10-18
  • 打赏
  • 举报
回复
char *str="hello"是放在代码段中的,不可改变
char str[10]="hello"是放在堆栈中的,可以任意使用,不过要注意地址不要越界哦
AFUSOFT 2001-10-18
  • 打赏
  • 举报
回复
区别是:1.指针变量赋值是指接用赋值运算符就可以了,例如:str="abcdef",但是数组就要用strcpy函数,因为字符串实际是存放这个字符串的地址常量,所以可以将任何地址常量赋给指针变量,但是不能赋给数组变量,其实数组名也是地址常量;2.可以将任意大小的字符串赋给指针变量,但是赋给数组就要依据数组长度了.

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧