为了账号安全,请及时绑定邮箱和手机立即绑定

char *Str;Str="abcdef";和char Str[]="abcdef";

char *Str;Str="abcdef";和char Str[]="abcdef";

PHP C
慕娘9325324 2022-02-24 19:15:36
char *Str;Str="abcdef";和char Str[]="abcdef";有什么区别???char Str[]="abcdef";是可以的,书上这么写的,编译也通过了。
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

首先第一个指针形式的str指向一个字符串,这样指向以后就不能通过str对abcdef这个字符串修改了,但是你可以给str用别的字符串再赋值,这样他就指向了别的字符串,但是一旦指向某个字符串,就不能通过这个指针对字符串修改了。

第二种数组形式的str,其实数组名就是指针常量,也就是说一旦他初始化了,它指向的地址就固定了,就不能再用别的字符串赋值了(这就不同于指针形式的str),但是这个地址里放什么是可以改变的(指针形式的就不能改变了),比如说初始化之后在通过cin>>str改变数组的内容还是没有问题的。

char Str[]="abcdef";这种写法是没有问题的,这样不写数组大小但必须要对其初始化,如果没初始化就必须声明数组大小。
明白?

查看完整回答
反对 回复 2022-02-27
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

char *Str;Str="abcdef";
Str指向常量区,指向的内容不能改了
char Str[]="abcdef";
在栈区,可以改变

查看完整回答
反对 回复 2022-02-27
?
长风秋雁

TA贡献1757条经验 获得超7个赞

第一个是定义的指针可以不加{},
第二个是字符串要加{}你所述的char Str[]="abcdef";是错误的表示方式。

查看完整回答
反对 回复 2022-02-27
  • 3 回答
  • 0 关注
  • 448 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号