A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 康佳兴 中级黑马   /  2014-6-14 22:44  /  1159 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 康佳兴 于 2014-6-17 14:15 编辑

7. #define String char *
int main()
{
    String s1, s2;
    s1 = "jack";
    s2 = "rose";
    return 0;
}

3 个回复

倒序浏览
楼主你好,你定义了一个String类型是char * 类型
然后你用String 定义了2个 char*
最后你把一个字符串常量复制给char*
字符串常量实际就是char[5] 你能将char[5]与char* 对等吗?
回复 使用道具 举报
你可以这样子写!
  1. #define String char *
  2. int main()
  3. {
  4.     String s1="jack";
  5.     String s2="rosse";
  6.     return 0;
  7. }
复制代码
回复 使用道具 举报
  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";  这里将字符串赋值给了字符类型,是肯定会报错的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马