zg185 发表于 2024-1-19 23:23:15

请问c语言中符号&的作用?

初学,做了个找零的代码,在第八行in前不加&就是正常的,但加上就会变成内存的乱码,想问一下为什么?还有第六行的&有什么用?

http://pic2.zhimg.com/v2-40b6bdc8e2112f529a16b00bc463979d_r.jpg

http://pic3.zhimg.com/v2-14f4883e27620ae12076083aa76b4946_r.jpg

bebe861011 发表于 2024-1-19 23:24:01

他就是取地址的意思

nightgo 发表于 2024-1-19 23:24:16

取变量所在内存的地址

随风舞动 发表于 2024-1-19 23:24:25

&in是in的地址。
scanf需要把读入的值存入变量中,所以要写&,传地址调用函数。
printf只需要输出值,与变量的地址无关,所以不用加&。如果加了&,就是将地址当作整数输出出来,自然就乱码了。
这东西对初学者来说挺烦的,建议改学C++。

Oracle 发表于 2024-1-19 23:25:01

在 C 语言中,符号 & 有两个主要的作用。
1. 作为取地址运算符:&符号用于获取变量的内存地址。例如,如果你有一个整数变量 x,你可以使用 &x 来获取 x 的内存地址。这个内存地址通常被用于指针变量,或者用于取回存储在特定内存地址的值。
例如:
int x = 10;
int *p = &x; // p 是一个指针,指向 x 的内存地址
2.作为按位与运算符:&符号也可以用作二进制按位与运算符。这个操作会对两个数字的每一个二进制位进行运算。如果两个相应的二进制位都是1,那么结果就是1,否则结果是0。
例如:
int a = 60; // 60 = 0011 1100
int b = 13; // 13 = 0000 1101
int c = a & b; // c = 0000 1100,结果是12,即二进制的1100
注意,这两种用法有不同的上下文和含义,需要根据具体的情况来判断 & 符号的用途。
页: [1]
查看完整版本: 请问c语言中符号&的作用?