gpt4 book ai didi

c - 指针地址/取消引用运算符

转载 作者:行者123 更新时间:2023-12-01 12:45:14 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
int y = 4; //This is a variable stored in the stack
printf("\n Address of variable y is :%p\n", &y); // This is the address of the variable y
int *addressOfVariable = &y; //This is a pointer variable, a P.V stores the memory address of a variable
//Read the value stored in a memory address
int memoryValue = *addressOfVariable; //* is a dereference operator, it reads the value stored in a memory address and stores it in another variable
//Update the value stored in the memory address
*addressOfVariable = 10;
_getch();
return 0;
}

有人可以告诉我这段代码有什么问题吗?从评论中可以清楚地看出,我只是在尝试实现指针和指针变量的使用。在其他错误中,我在 (*addressOfVariable=10) 代码中收到“非法间接错误”。

谢谢你的帮助。

最佳答案

指针或取消引用运算符 (*) 在这里没有任何问题。看来您没有在 C99 模式下编译代码。在 C89 中,混合类型声明是不允许的。

编辑:正如 OP 在他的评论中所说,他正在使用 MS Visual Studio 2012,MSVC 不支持 C99(基本上它是一个 C++ 编译器)。您不能在 C99 模式下编译您的代码。现在像C89一样在代码的开头声明所有变量;

int y=4;
int *addressOfVariable=&y;
int memoryValue=*addressOfVariable;
....

关于c - 指针地址/取消引用运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com