| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1927 人关注过本帖
标题:C指针
取消只看楼主 加入收藏
yole
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-7-10
收藏
 问题点数:0 回复次数:3 
C指针
关于指针类型转换
#include<stdio.h>
int main(void)
{
    int n=2;
    char a='e';
    void * ptr;     
    ptr=&a;
    printf("%c",*(int*)ptr);    
}

这是书上的,说得是类型转换。

{
    int n=2;
    char a='e';
    int * ptr;          /*改了*/
    ptr=&n;
    printf("%d",ptr);        /*有改动*/
}
这么改能运行,但结果为什么是X
搜索更多相关主题的帖子: 指针 
2008-07-19 23:55
yole
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-7-10
收藏
得分:0 
[bo][un]独孤小梦[/un] 在 2008-7-20 00:00 的发言:[/bo]

#include  
void main()
{
    int n=2;
    char a='e';
    int *ptr;   
    ptr=&n;
    printf("%d",*ptr);
}
你最后少了*号!这里加个*号看看怎么样!


我知道少了个*,但是我想知道为什么最后的结果是X????????
2008-07-20 23:00
yole
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-7-10
收藏
得分:0 
[bo][un]missiyou[/un] 在 2008-7-20 16:45 的发言:[/bo]

pDosHeader = (PIMAGE_DOS_HEADER)hMod;
pNTHeaders = (PIMAGE_NT_HEADERS)((BYTE *)hMod + pDosHeader->e_lfanew);
pOptHeader = (PIMAGE_OPTIONAL_HEADER)&(pNTHeaders->OptionalHeader);

pImportDescriptor  ...



哥哥,你说这个干嘛呀?
2008-07-20 23:01
yole
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-7-10
收藏
得分:0 
[bo][un]chinahelloworld[/un] 在 2008-7-20 16:33 的发言:[/bo]

printf("%c",*(int*)ptr); 既然是打印字符,并且ptr是指向char型的数据,为什么要把它强制转换成int*型,哪个白痴写的教材。鬼才知道这样写的程序有没有隐藏的错误。
建议楼主立即把你的教科书卖废纸(遗害无穷), ...



呵呵,可能是我的错误,我没说清楚,这个程序还有很多地方省略了,我只是想问问我那么改了为什么会得出X这个值。

PS:现在看的这本书是中国人编的,“深入浅出C语言程序设计”,个人感觉比谭浩强那本好。C plus primer还是不错的。
2008-07-20 23:05
快速回复:C指针
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040230 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved