注册 登录
编程论坛 C++教室

关于指针赋值为整数的疑问

我是杨过 发布于 2007-11-25 12:51, 971 次点击
#include<stdio.h>
#include<stdlib.h>

int main()
{
        int *p;
        int i = 0;

        
        for (i = 0; i < 6; i++)
        {
                p[italic] = i;??????指针赋为整数??
     [/italic]   }

        for ( i = 0; i < 4; i++)
        {
                printf("%d\n", &p);
        }

        return 0;[italic][italic]
}

i[/italic][/italic]nt main()
{
        int *p;
        int i = 0;

        
        for (i = 0; i < 7; i++)
        {
                p = i;
        }

        for ( i = 0; i < 4; i++)
        {
                printf("%d\n", &p);
        }

        return 0;
}

两段代码 都是数组越界 为什么代码二出错 代码一没问题?? 

、、、、、、、、、、、、、、、、、
刚刚在chinaunix上看到的帖子,很多人说没问题,我就奇怪了,一个指针的值能付给一个整数吗(当然了0出外),是不是我孤陋寡闻了。请高手解释一下

[italic][italic][italic][italic]
[/italic][/italic][/italic][/italic]
2 回复
#2
静思2007-11-25 12:58
可以通过强制类型转换达到目的
int * x=(int*)0x1234;
但这种方法不太好,我们根本无从得知此地址正处于何种状态,无知的强制转换无异于使用悬浮指针!
#3
我是杨过2007-11-25 13:03
谢谢版主的解释,我觉得也是很奇怪。呵呵!
1