使用int类型指针取消引用char值时获取垃圾

时间:2016-04-02 19:02:37

标签: c

为什么变量的数据类型及其指针在c

中应该相同
#include<stdio.h>

int main()
{
    char testvar = 9;
    int * testptr = &testvar;
    printf("testvar = %d", *testptr);
    return 0;
}

它的打印垃圾值为何??

1 个答案:

答案 0 :(得分:-1)

你初始化了一个字节并打印了四个,所以其他三个是任意的。

试试这个:

setContentView(R.layout.activity_main)

这将初始化四个字节。

或者这个:

int testvar = 9;

根据堆栈的布局方式,可以获得您想要的东西(取决于平台,编译器和优化)。 这是非常非常糟糕的编程习惯。不要永远在生产代码中执行此类操作。

不要在作业中这样做。这是你玩的东西,只是为了看看当你学习指针如何工作时会发生什么。