c - c编程中的*和&运算符有什么区别?

标签 c operators

我只是确保我正确理解了这个概念。使用 * 运算符,我创建了一个新变量,它在内存中分配了一个位置。为了避免不必要地重复变量及其值,& 运算符用于将值传递给方法等,它实际上指向变量的原始实例,而不是制作新副本……对吗?这显然是一种肤浅的理解,但我只是想确保我没有把它们搞混。谢谢!

最佳答案

不完全是。您将出现在类型名称(用于定义变量)中的 ** 运算符混淆。

int main() {
    int i;    // i is an int
    int *p;   // this is a * in a type-name. It means p is a pointer-to-int
    p = &i;   // use & operator to get a pointer to i, assign that to p.
    *p = 3;   // use * operator to "dereference" p, meaning 3 is assigned to i.
}

关于c - c编程中的*和&运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702156/

相关文章:

java运算符++问题

c - 为什么服务器在客户端应用程序处于 STOPPED 状态后等待客户端?

c - 为什么 Go 似乎无法识别 C 头文件中的 size_t?

c - 在 C 中重复输入数据的结构

c - 找出输入字符的两个出现之间的最大空间的程序

无法使用 execl 列出特定目录

php - | 之间有什么区别?和||运营商?

parameters - perl6 将运算符作为参数传递

JavaScript/Node.JS - 使用 OR 运算符的紧凑方式?

javascript - 为什么使用processing.js从值中减去-0.2会将整数变成无理数?