黑马程序员技术交流社区

标题: 哪里出错了 [打印本页]

作者: 康佳兴    时间: 2014-6-14 22:44
标题: 哪里出错了
本帖最后由 康佳兴 于 2014-6-17 14:15 编辑

7. #define String char *
int main()
{
    String s1, s2;
    s1 = "jack";
    s2 = "rose";
    return 0;
}
作者: huangqiwa    时间: 2014-6-14 23:01
楼主你好,你定义了一个String类型是char * 类型
然后你用String 定义了2个 char*
最后你把一个字符串常量复制给char*
字符串常量实际就是char[5] 你能将char[5]与char* 对等吗?
作者: huangqiwa    时间: 2014-6-14 23:04
你可以这样子写!
  1. #define String char *
  2. int main()
  3. {
  4.     String s1="jack";
  5.     String s2="rosse";
  6.     return 0;
  7. }
复制代码

作者: 张宇清    时间: 2014-6-15 11:59
  1. #define String char *
  2. int main()
  3. {
  4.     String s1, s2;
  5.     s1 = "jack";
  6.     s2 = "rose";
  7.     return 0;
  8. }
复制代码


首先,#define仅仅是起到了基本的替换作用。
你这里是把  char* 替换成了 String
然后你又做出了如下声明: String s1,s2;  那么这句话就等价于: char * s1,s2;
这句在C语言里的解释是:s1为char * 类型,s2为char类型,
在底下你又做出了 s2 = "rose";  这里将字符串赋值给了字符类型,是肯定会报错的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2