首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

简单C语言函数有关问题

2013-09-28 
简单C语言函数问题void Insert(int *&a){//函数内部的参数如何解释//&是取地址 int * 是定义一个指针变量

简单C语言函数问题
void Insert(int *&a)
{
     //函数内部的参数如何解释 
     //&是取地址 int * 是定义一个指针变量 我理解的 
     //求大神科普
}
[解决办法]

引用:
Quote: 引用:

C里面你编译能通过吗

我也不是很清楚是不是C,但是这样可以用 不是很理解
//头插法建立链表 
void InsertT(LNode *&C,int arry[],int x)
{
    LNode *s,*r;
    C=(LNode*)malloc(sizeof(LNode));
    C->next=NULL;
    r=C;
    for(int i=0;i<x;++i)
    {
        s=(LNode*)malloc(sizeof(LNode));
        s->num=arry[i];
        s->next=r->next;
        r->next=s;
    }
}


我的理解:
void InsertT(LNode *&C,int arry[],int x) 中的第一个参数是一个LNode*类型的引用,即一个对指针类型的引用,这是一个pass by reference的方式,目的是改写指针LNode* C的值(函数体内通过将malloc的值赋给C,的确达到了这个目的)
类似于这个:

void test_ref(int *&a)
{
    a = new int;
    *a = 10;
}

void main()
{
   int *p;
   test_ref(p);
   cout<<*p<<endl;
}

[解决办法]
这里'&'不是取地址,是引用
[解决办法]
这明显是C++的引用啊
[解决办法]
C里想修改指针的值,直接用指针的指针就行了啊,(LNode **C),没用过引用,在C里面

热点排行