在c语言中*&a[1]为什么是合法的
发布网友
发布时间:2023-09-24 11:00
我来回答
共4个回答
热心网友
时间:2024-03-20 17:36
因为在C语言中,*
代表获取地址的内容,&
代表获取地址,然后根据运算符的优先级,*
与
&
优先级相同,并且都是从右到左,所以上面的式子可以理解为
*
(&a[1]),即先获取a[1]的地址,然后再获取其中的内容。所以两个符号一起用,就等价于*(&a[1])
==
a[1]。
热心网友
时间:2024-03-20 17:37
"&"是取地址符,“*”是取地址里面的内容的符号,&a[1]相当于一个指针(即数组元素a[1]的地址),*&a[1]当然是取地址&a[1]里面的内容了,就是a[1]的值。
热心网友
时间:2024-03-20 17:37
c语言的数组长度不允许是变量
如果这个m是变量的话就肯定不合法了
如果前面有define
m
~~给m规定了值就合法
反正只要明白,数组的长度定义是不允许变量就行
热心网友
时间:2024-03-20 17:38
*&a[1]
=
a[1]
&a[1]表示a[1]的地址,*后面跟地址表示地址里的值,所以*&a[1]
=
a[1]。
可以理解为,*和&在C语言里互为逆运算。
望采纳。