指向指针的指针-创新互联
运用链表求所有因数
目前成都创新互联公司已为上千余家的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、景洪网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。在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://scjbc.cn/article/csohhd.html