| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 374 人关注过本帖
标题:指针初始化问题
只看楼主 加入收藏
rs369007
Rank: 2
等 级:论坛游民
帖 子:30
专家分:11
注 册:2009-2-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
指针初始化问题


#include<stdio.h>
typedef struct Node{
    char data;
    struct Node *next;
}*LinkList,LinkNode;

void test_para(LinkList L)
{
    char ch='i';
    LinkList Q;
    L=Q;//这里Q也没有显式赋值,Q里面的地址是怎么来的,这里需要为Q动态分配存储空间吗?Q=(LinkList)malloc(sizeof(LinkNode));
    printf("Q=%x,L=%x,Laddr=%x,Qaddr=%x",Q,L,&L,&Q);//这里说明Q已经指向一个内存地址,我这里运行:Q=7023,L=7023,Laddr=ffc2,Qaddr=ffbc
    getch();
    Q->data=ch;
    putchar(L->data);
    getch();
    return;
}

main()
{
    LinkList s;
    test_para(s);
    getch();
    return;
}

谢谢!指点!
搜索更多相关主题的帖子: 指针 
2009-10-31 21:41
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:20 
我是这样看的:   
 L=Q;//这里Q也没有显式赋值,Q里面的地址是怎么来的,这里需要为Q动态分配存储空间吗?Q=(LinkList)malloc(sizeof(LinkNode));
    printf("Q=%x,L=%x,Laddr=%x,Qaddr=%x",Q,L,&L,&Q);//这里说明Q已经指向一个内存地址,我这里运行:Q=7023,L=7023,Laddr=ffc2,Qaddr=ffbc
第一处:L=Q;含义是把Q本身的地址赋给L
第二处:注意这里 typedef struct Node{
          char data;
          struct Node *next;
          }*LinkList,LinkNode;
你是用指针结构体类型定义的变量,Q=%x,L=%x输出的是你定义的变量的本身地址,而Laddr=%x,Qaddr=%x输出的是你所定义结构体变量的首地址

系统在你定义变量时就会给它开辟一个存储空间,用动态存储空间分配函数(如malloc())一般是用于需要开辟多个不重复的存储单元,比如建立链表


想象力征服世界
2009-11-01 22:55
快速回复:指针初始化问题
数据加载中...
 
   



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

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