将x,y改为了int*类型的指针。在主调函数中,对a,b进行取地址获取指针并传入函数swap。在函数swap内部,通过这两个指针交换目标数据对象的值。 注意,不是交换指针x,y的值,而是交换目标数据对象a,b的值。所以,需要在指针前使用取值运算符*。 2.仅有首地址的指针类型void* 若要用函数swap交换两个int类型的变量,...
指针作为传参形式的好处是可以节约空间。 根据我们上文中提到的子函数的形参是实参的一份复制来看,无论什么放在里面都是复制了那一份实参作为形参。 而拷贝指针,就可以只拷贝很少的空间。 再来说【数组】。 子函数中,对于数组的【修改】(非只读,包含写)都是会修改主函数的值的。 我理解为【数组操作】就是对于...
优点:方便。缺点:使用范围受限,如果几个返回值正好是某个已有结构体变量的内容,那才是不二的选择。如果单独为了返回几个值而定义一个结构体变量,则得不偿失,增加编程的工作量。所以这个方法用的少。传值参数(指针):优点:用传值参数(指针)回传返回值是最常用的方法,需要哪一个值回传,就...
C 语言的优点是,只要表达式的类型适当,就可以当作实参。另一方面,缺点是在启用函数时,如需要复制大数据对象,则运行成本很高。而且,函数没有办法修改原始变量(调用者的变量),只能修改原始变量的复制版本。 然而,如果函数的实参是变量的地址,那么函数就可以通过指针,直接获取该原始变量,并修改原始变量的值。所以,C 语言...
在C语言中,使用指针作为函数参数的意义在于能够直接操作调用函数中的变量值。例如,当需要交换两个整数的值时,直接传递整数作为参数无法达到交换目的。这是因为函数接受的是整数的副本,而非原变量。考虑以下示例:int swap(int a, int b) { int tmp;tmp = a;a = b;b = tmp;} 在这个函数中...
04深⼊理解C指针之---指针优缺点 该系列⽂章源于《深⼊理解C指针》的阅读与理解,由于本⼈的见识和知识的⽋缺可能有误,还望⼤家批评指教。 指针的优点: 1、⽀持动态内存分配,主要借助于malloc()函数完成内存的分配,free()完成内存的释放; 2、有效保护作为参数传递给函数的数据,...
首先,传过去的是二维数组,我们当然可以用一个同类型的二维数组来接收:void test(int arr[3][5])或 void test(int arr[][5]但注意不能写成int arr[][],因为二维数组的列数是不能省略的,二维数组传参,函数形参的设计只能省略第一个[]的数字。那然后我们当然也可以用指针接收。在【3.3 数组指针的使...
一、指针与函数传参: 1、普通变量作为函数形参: (1)函数传参时,普通变量作为参数时,形参和实参名字可以相同也可以不 同,实际上都是用实参来替代相对应的形参的。 (2)在子函数内部,形参的值等于实参。原因是函数调用时把实参的值赋值给了形参。 (3)这种传值方式我们一般叫“传值调用”:相当于实参做右值,...
本视频主要讲解了C语言中数组传参的两种方式,重点强调了数组传参的本质是传递数组第一个元素的指针。通过具体的例子,展示了如何使用C语言实现数组的传参,包括数组元素个数的传递和数组名的传递。同时,对比了数组传参和指针传参的优缺点,指出数组传参可以节省空间和时间,提高程序的效率。此外,还介绍了如何使用指针访...
传值调用和传址调用都有各自的优缺点。传值调用简单直观,但对于大规模数据传递会产生较大的开销,而传址调用可以减少数据复制的开销,但使用不当可能会导致指针操作的错误。 在C语言中,参数传递的方式取决于函数定义时参数的类型,如果参数类型为基本类型(如int、char等),则采用传值调用;如果参数类型为指针类型,则可...