美文网首页
int不能直接赋值给int*

int不能直接赋值给int*

作者: 体胖勤跑步 | 来源:发表于2017-09-06 17:15 被阅读0次

    在c++里定义指针变量时:
    int *a;或者 int *a = 0;
    都是可以的,我们知道指针是指向内存地址的变量,像这样的0x40234b
    按理说这是一个16进制数,那像这样定义应该也是可以的:
    int *a = 1;
    反正都是数啊,实际确是出错,给出的错误是:
    error: invalid conversion from 'int' to 'int*' [-fpermissive]
    int *a = 1;
    这是啥意思呢?int不能赋值给int*,这是什么东东,int和int*有什么区别呢?都是整数啊,怎么会错呢!经过多方查证,参考如下:
    char b = 10;#这样可以
    string b = 10;#这样不行
    char和string都是字符啊,但是这样不行。
    总之,int*和string这种不能直接赋值,原因是因为它们是类型,啥是类型?
    比如自定义一个类型:class exp
    那么exp b;或者exp b = 0;#是可以的
    exp b = 1;#这样不对

    相关文章

      网友评论

          本文标题:int不能直接赋值给int*

          本文链接:https://www.haomeiwen.com/subject/mpwbhxtx.html