请高手帮忙解答一道C语言题

2024-11-08 15:39:08
推荐回答(4个)
回答1:

不等价, 原因是前者的字符串"Program"是个常量, 而后者是个变量, 常量不可改变, 比如你这样:

char*str="Program"

*str = '1';

就会引起runtime error;

后者就没问题;

所以定义指针指向常量字符串的时候最好这样:

const char* str="Program";

回答2:

不等价.前者占8个字符.后者占7个字符.

回答3:

不等价,但是原因不是因为字符个数,这2个定义方法的结果都是8个字符

原因在于一个是指针,一个是数组
后者可以用str[i]的方式访问,前者不行
前者指针可以移动,比如str++,后者不行

回答4:

不等价,前一个是指针,后一个是数组。
后者可以用str[i]的方式访问,前者不行
前者指针可以移动,比如str++,后者不行
前一个使用灵活,
建议你用指针,指针的使用是灵活多样的,是C语言的灵魂