重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言没有引用传递,只有c++有,c语言中函数参数总是通过值传递,可以通过显示传递指针值模拟引用传递,而直接用的引用传递会报错,你那程序把源文件改成cpp文件应该能用,至于严老师的只是伪代码,提供一个程序运行结构而已,大体按照c语言编写,有一部分是c++的东西
成都创新互联公司服务项目包括平湖网站建设、平湖网站制作、平湖网页制作以及平湖网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平湖网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平湖省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
这是因为他传递的是该指针的拷贝,函数中对指针指向的改变,不影响调用部分该指针的执行,可以使用引用或者指向指针的指针进行传递参数来达到这个效果。
如下面的代码:
void TestNULL(ListNode**p){///////////
*p = NULL;//////////////
}
int main(){
ListNode * node1 = CreateListNode(1);
TestNULL(node1);////////////
if (node1 == NULL){
printf("NULL");
}
return 0;
}
另,这里要传递指向指针的指针,在对该指针参数进行更改时才能影响到调用部分的指针参数的指向。
数组名就是指针,例如:
#include stdio.h
void pr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
扩展资料:
注意事项
非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:
int main(int argc,char* argv[])
{
/* code here */
}
与
int main(int argc,char** argv)
{
/* code here */
}
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。