C++ 指针基址1
2024-08-25 09:22:59
char *p=(char *)&n;中括号中为什幺要加个*号
答:
&n是一个整型数值,代表变量n的地址,不包含其所保存的数据的类型信息(也就是说只凭借一个地址是不能推测出,该地址所存储数据的类型)。而编译器为了保证程序的准确性,要对程序中操作的数据进行类型检查(例如赋值操作中,检查两个操作数类型是否匹配)。
char *p=(char *)&n;这条语句中,希望通过指针p操作n所在地指出的数据,这时必须通过强制转换,为n所在地址附加数据类型信息。也就是表明这是个存储char类型变量的地址。这样当指针p进行++或--等操作时,编译器才能确定指针的偏移量。若想表明某个地址是char类型数据的地址,必须用char *对该地址进行强转。char表示该地址存储的数据类型,*表示操作的是一个地址,不加*就会当作普通的强制转换,返回的是将n的地址作为一个整数,保留一个字节后的数据。
最新文章
- org.apache.log4j.Logger详解
- [LeetCode] Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
- string类实现(C++)
- IntelliJ 支持web
- Linux/Unix命令
- 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用
- (剑指Offer)面试题15:链表中倒数第k个结点
- Memcached 配置 和项目应用
- Linux内核之内存管理(4)--缺页处理程序
- Linux开发环境的搭建和使用——Linux 常用的命令使用
- 【转】amCharts,一款值得推荐的Flash charts图组件
- 禅道SQA
- Selenium发展史
- 通读cheerio API ——NodeJs中的jquery
- PHP Switch 语句
- SpringMVC相关常用注解
- 「HNOI2016」最小公倍数 解题报告
- Hibernate使用套路,新手请进
- python函数之第一类对象
- 第一次打开app
热门文章
- spring容器、spring MVC容器以及web容器的区别
- Rsync+inotify搭建使用
- 最小生成树基础算法(Prim + Krustal)
- 用vuex写了一个购物车H5页面的示例代码
- [CodeForces 52C]Circular RMQ
- 求解:为什么impala实现hive查询 可以使用ifnull()函数,不可以使用length() 函数
- JS中 [] == ![]结果为true,而 {} == !{}却为false
- shell脚本实现ftp上传下载文件
- 使用MyEclipse创建Servlet
- Kotlin 的 Array 转 List