int不能直接赋值给int*

在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;#这样不对

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,474评论 3 44
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,434评论 0 35
  • 【书 目】《象与骑象人》【课程领拆】赵周老师【上课时间】2017年9月5日【作 业】 I ...
    兰草香舍2018阅读 241评论 1 1
  • 今日有约,未赴 今夜有雨,未下 一只蚊子喝饱我的血 正在休憩
    那年520阅读 163评论 0 2
  • 他们再次携手合作,想挣脱命运的安排,实现人生低谷的反转。兄弟合力,其利断金!祝愿你们能成功。 ...
    跨界跑者阅读 604评论 0 0