char *p=(char *)&n;中括号中为什幺要加个*号

答:

&n是一个整型数值,代表变量n的地址,不包含其所保存的数据的类型信息(也就是说只凭借一个地址是不能推测出,该地址所存储数据的类型)。而编译器为了保证程序的准确性,要对程序中操作的数据进行类型检查(例如赋值操作中,检查两个操作数类型是否匹配)。
char *p=(char *)&n;这条语句中,希望通过指针p操作n所在地指出的数据,这时必须通过强制转换,为n所在地址附加数据类型信息。也就是表明这是个存储char类型变量的地址。这样当指针p进行++或--等操作时,编译器才能确定指针的偏移量。若想表明某个地址是char类型数据的地址,必须用char *对该地址进行强转。char表示该地址存储的数据类型,*表示操作的是一个地址,不加*就会当作普通的强制转换,返回的是将n的地址作为一个整数,保留一个字节后的数据。

最新文章

  1. org.apache.log4j.Logger详解
  2. [LeetCode] Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
  3. string类实现(C++)
  4. IntelliJ 支持web
  5. Linux/Unix命令
  6. 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用
  7. (剑指Offer)面试题15:链表中倒数第k个结点
  8. Memcached 配置 和项目应用
  9. Linux内核之内存管理(4)--缺页处理程序
  10. Linux开发环境的搭建和使用——Linux 常用的命令使用
  11. 【转】amCharts,一款值得推荐的Flash charts图组件
  12. 禅道SQA
  13. Selenium发展史
  14. 通读cheerio API ——NodeJs中的jquery
  15. PHP Switch 语句
  16. SpringMVC相关常用注解
  17. 「HNOI2016」最小公倍数 解题报告
  18. Hibernate使用套路,新手请进
  19. python函数之第一类对象
  20. 第一次打开app

热门文章

  1. spring容器、spring MVC容器以及web容器的区别
  2. Rsync+inotify搭建使用
  3. 最小生成树基础算法(Prim + Krustal)
  4. 用vuex写了一个购物车H5页面的示例代码
  5. [CodeForces 52C]Circular RMQ
  6. 求解:为什么impala实现hive查询 可以使用ifnull()函数,不可以使用length() 函数
  7. JS中 [] == ![]结果为true,而 {} == !{}却为false
  8. shell脚本实现ftp上传下载文件
  9. 使用MyEclipse创建Servlet
  10. Kotlin 的 Array 转 List