我有这段代码给指针一个地址并打印它,但为什么这不起作用?
void main()
{
int *b = (int*) 32;
printf("%d\n",b[0]);
}
b[0]
取消引用指向您尚未分配的内存的数组。这样做的影响是不确定的。32
如果您的进程无法读取地址,您可能会返回一个值,或者您的程序可能会崩溃。
int *b = (int*) 32;
上面的代码将内存地址 32 分配给这个指针,我不认为这是你想要的,当你调用 printf 时你会得到访问被拒绝的错误,希望下面的代码对你有用
int a = 32;
int *b = &a;
printf("%d\n",b[0]);
//output 32
printf( "%d\n", &b);
// output b pointer address.