char a[] 和 char *b的使用

找出下面代码的错误:

char a[] = “House”;

char *b = “House”;

b[2] = ‘r’;

a[2] = ‘r’;

b = a;

b[2] = ‘r’;

a = b;

 

答案:

      b被定义为一个指针变量,基类型为字符型,他只能指向一个字符型数据,不能同时指向多个字符数据,更不是将house存放到b中。

b指向了“House”字符中的第一个字符“H”的地址。

char a[] = “House”;

char *b = “House”;

//b[2] = ‘r’;   //b被定义为一个指针变量,基类型为字符型。b指向了“House”字符中的第一个字符“H”的地址。

                   //不能使用b[2]

a[2] = ‘r’;

b = a;   //这里,是让b指向a数组的首地址。

b[2] = ‘r’;   //因为b已经指向a数组的首地址,所以这里可以使用b[2]

//a = b;   //无法从“char *”转换为“char [6]”  

猜你喜欢

转载自blog.csdn.net/zhuiqiuzhuoyue583/article/details/82529623
今日推荐