六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 177|回复: 0

链表,形参,实参

[复制链接]

升级  52%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
26
 楼主| 发表于 2013-2-5 02:35:49 | 显示全部楼层 |阅读模式
 在学习C语言的时候,关于形参如何改变实参,链表中节点的值何时被改变,何时不被改变,一直没有搞明白,今天终于搞懂,记录下来备份。 
1、形参改变实参
 
<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 95%; padding-top: 4px;">#include <stdio.h>
#include 
<malloc.h>
typedef 
struct LNode
...{
    FILE 
*fp;
    
char *fname;
    
struct LNode *next;
}
LNode;
LNode 
*LinkList;
LNode 
*ListInit(LNode *linklist)...{
    
    
if((linklist=(LNode *)malloc(sizeof(LNode)))==NULL)...{
        printf(
"Init Link Error");
        exit(
0);
    }

    linklist
->next=NULL;
    
return linklist;
}

ListInsert(LNode 
*linklist, char *fname,FILE *fp)...{
    LNode 
*lnode;
  LNode 
*p;   
  p
=linklist;
            
if((lnode=(LNode*)malloc(sizeof(LNode)))==NULL)...{
                    printf(
"Insert Error");
                    exit(
0);
                }

                
while(p->next!=NULL)...{
                    p
=p->next;                    
                    
if(!strcmp(p->fname,fname))
                        
...{
                            p
->fp=fp;
                            
return ;
                        }

                }

                p
->next=lnode;
                lnode
->fp=fp;
                lnode
->fname=fname;            
                lnode
->next=NULL;
                p
=lnode;
                
                
//注意这一段代码,这里只是改变了test指针指向的所指变量的值,即fname的值,
                
//故,在main函数中的fname的值会发生变化
                while(*fname!='
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表