int a = 20,执行b=4*a后b的结果是什么
时间: 2023-03-21 15:01:10 浏览: 81
如果执行 `b=4*a`,其中 `a` 被赋值为 `20`,则根据乘法运算的优先级,先计算 `4*a` 的结果,即 `4*20`,这将得出 `80`,然后将结果赋值给变量 `b`。因此,`b` 的结果将是 `80`。
相关问题
int a=b=0为什么不正确
在C语言中,赋值运算符"="的返回值为被赋的值。所以,表达式"a=b=0"的执行顺序是从右至左,即先执行"b=0",然后将"b=0"的返回值0赋给a。但是,由于b未被定义,所以编译器会报错,导致整个表达式无法编译通过。
要让表达式"a=b=0"正确执行,需要先定义变量b,例如:
```
int a, b;
a = b = 0;
```
这样,先将0赋给b,再将b的值0赋给a,代码就可以正常执行了。
int *a = (int *) b->priv
在这段代码中,`b` 是一个指针,它有一个成员 `priv`。假设 `priv` 是一个指向整型的指针。当执行 `int *a = (int *) b->priv` 这行代码时,首先通过 `b->priv` 获取指针 `priv` 的值,然后进行强制类型转换,将其转换为指向整型的指针,并将结果赋值给指针 `a`。
此时,`a` 是一个指向整型的指针,它指向的是 `b->priv` 所指向的整型数据。如果之后修改了 `a` 所指向的值,那么会改变 `b->priv` 所指向的值,因为它们实际上是同一个内存位置。
换句话说,修改 `a` 所指向的值会改变 `b->priv` 所指向的值。它们共享相同的内存。
需要注意的是,在执行 `int *a = (int *) b->priv` 之前,需要确保 `b->priv` 是有效的且非空,并且进行类型转换时确保类型匹配,否则可能导致未定义行为或错误。同时,还需要确保 `a` 的指针目标内存空间的有效性。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)