6.8 指针,间接访问和变量
*&a = 25;
答案是它把值25赋值给变量a,首先,&操作符产生变量a的地址,它是一个指针常量(注意,使用这个指针并不需要知道它的实际值)。接着,*操作符访问其操作数所表示的地址。在这个表达式中,操作数是a的地址,所以值25就存储于a中。
这条语句和简单地使用a=25;有什么区别吗?从功能上说,它们是相同的。但是,它设计更多的操作。除非编译器(或优化器)知道你在干什么并丢弃额外的操作,否则它所产生的目标代码将会更大、更慢。更糟的是,这些额外的操作符会使源代码的可读性变差。基于这些原因,没人会故意使用像*&a这样的表达式。
C和指针 第6章 指针 6.8 指针、间接访问和变量
于 2022-06-14 23:11:11 首次发布