[编程开发] 请问c语言中符号&的作用?

[复制链接]
zg185 发表于 2024-1-19 23:23:15|来自:中国 | 显示全部楼层 |阅读模式
初学,做了个找零的代码,在第八行in前不加&就是正常的,但加上就会变成内存的乱码,想问一下为什么?还有第六行的&有什么用?



全部回复4 显示全部楼层
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
注意,这两种用法有不同的上下文和含义,需要根据具体的情况来判断 & 符号的用途。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则