找出下面代码的错误:
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]”