指向指针的指针-创新互联

运用链表求所有因数

目前成都创新互联公司已为上千余家的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、景洪网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

在C中传递指针的地址值是不用能*& ,如

int *p

void function(int *&p) //在c中是不被允许的,但在C++中是被允许的

而在C中可以运用双重指针,来进行指针的地址的传递如

int *p

void function(int **p);

其传入地址与普通变量一致如

function(&p);即可

在函数中修改指针的地址

function(&p)

{

​ 、、、、

​ *p = 地址值

​ 、、、、、

}

//求一个数所有因数

typedef struct int_next{int a;
        struct int_next *next;
}int_next;

void yin_shu(int_next **a , int x);
int main()
{int x;
        int_next *data =NULL;
        scanf("%d" , &x);
        printf("%p\n" ,data);
        yin_shu( &data  , x);
        printf("%p\n" ,data);
        while(data->next !=NULL)
        {   
                
                printf("%d" , data->a);
                data = data->next;
        }
        system("pause");
        return 0;
}
//求一个数所有因数
void yin_shu(int_next **a , int x)
{int i ;
        int_next *p;
        p=(int_next *)malloc(sizeof(int_next));
        p->next =NULL;
        *a=p;		// 修改a的地址(此句很重要,不然返回的地址值可能不会变)
        for(i=1 ; i<=x;i++)
        {if(x%i ==0)
                {p->a = i;
                        p->next =(int_next*) malloc(sizeof(int_next));
                        p = p->next;
                        
                }
        }
        p->next=NULL;

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:指向指针的指针-创新互联
文章路径:http://pwwzsj.com/article/csohhd.html