首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言函数调用详解】——值调用&址调用

num1,num2的目的,我们看看结果是什么样的: 因此,值调用,要想在函数内部交换两个变量的值,是不可行的。...那要怎么做呢?这里就需要址调用。 二.址调用 那什么是址调用呢?这里的“址”指的是地址址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。...这种参方式可以让函数函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。...那现在我们用址调用的方法对上面的函数重新进行实现: #include //正确的版本 void Swap2(int* px, int* py) { int tmp = 0; tmp...以上就是对函数调用的两种方式,值调用和址调用的介绍,欢迎大家指正,我们一起进步!!!

64110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言函数值的相关问题

    代码分析 上述输出为null,其实不小心犯了个低级错误,那就是: 调用getmem时是值传递,str本身在getmem之后并没有获得相应空间,原因即getmem中的*p 作为局部变量并不能将p返回到main函数...getmem(char **p,int n) 调用时使用 1 getmem(&str,100); 其意思是:char *p即指向指针的指针,意为“p指向一个变量,此变量存放的不是具体数据,而是一个指针的地址...此处会改变的原因:本质仍为值传递,但是传递的不是此指针(不同于前面的getmem(str,100)),而是指针所存放的地址,其被 p所指向,然后在函数中通过p修改了p指向内容的值,即修改了str的地址,...注意 char *str中,str是一个地址,printf(str)中str也是个地址,只不过格式控制类型为%s,这样的print即从str地址开始一直输出,直到’\0’为止(终结符是系统自动加上的),...另外,不用函数的方式来开辟空间确实就不需要**p这么麻烦: int main(void) { // your code goes here char *str; str=(char *)malloc

    1.3K20

    C语言-函数的定义、声明、

    前言 C语言函数是非常重要的知识点,一个完整的C语言程序就是由主函数和各个子函数组成的,主函数调用子函数完成各个逻辑功能。 2. 函数C语言里是什么概念?...函数相当于打包代码的过程,程序代码里如果有很多重复代码,可以将重复代码写成一个函数,进行调用。 C语言程序里除了main函数(主)之外的函数都叫子函数,都属于自定义函数。 3. 函数如何定义?...} int func3(int a,int b,int c,.....) { return 12; } void func4(char *p) { } 4.自定义的函数如何调用和声明?...b) { int c; c=a+b; return c; //返回结果,并终止函数执行 } 6. return 语句作用 return 本身功能终止函数执行,顺带返回一个值给调用者。...if(a>b){int c;…. } 生命周期: 全局变量生命周期和main函数共存。

    1.5K10

    C语言函数参:指针的指针

    size个字节的空间,然后返回给main函数中的pData指针。...代码:版本2 代码的本意是在do_malloc函数中申请堆空间,然后把这块空间的首地址赋值给pData。...在do_malloc函数中,调用系统函数malloc成功之后返回所分配空间的首地址,关键是要把这个首地址送给pData指针,也就是说要让pData指针变量中的值等于这个堆空间的首地址。...执行do_malloc(&pData, 128); 把pData指针的地址作为实参进行传递,因为pData本身就是一个指针,加上取地址符&,就是指针的指针(二级指针),因此do_malloc函数的第一个参数就要定义成...因此,malloc函数返回的堆空间首地址,就相当于是赋值给了pData,如下图: ? 此时,pData这个遥控器就与分配的这块堆空间绑定在一起,随后再操作pData就没有问题了。

    2.1K20

    c语言二维数组参数_c语言数组

    初遇二维数组作函数参数,宛如自己化身为了大头儿子。很头大。 不禁大声呐喊:该怎么声明定义,该怎么调用,又该怎么函数中操作元素和地址? 在此,我要拨开这些问题的一些迷雾。...同时,把元素外层*()剥去就代表地址。因此只写元素。 最后有总结。 二维数组作函数参数,依我看来,至少可以分成三种。 事先,在main函数中 int a[m][n]; 好了,进入主题。...Jetbrains全家桶1年46,售后保障稳定 调用 function(a);//函数调用 实参直接写数组名!数组名!(重点)。...*((int *)a +i*n +j )//同上,n表示第二维数组长度,即列宽 //不管怎么样,a[i][j]不被允许。也是由编译器的寻址方式决定。...同时,把元素外层()剥去就代表地址。 喜欢就为我点赞,评论加收藏。

    2.8K10

    C语言----C语言内存函数

    1.memcpy--内存拷贝--使用和模拟实现 //memcpy基本格式: // 目标空间地址 原空间地址 被拷贝的字节个数 //void *memcpy...1.这个函数在遇到\0的时候并不会停下来 2.如果source和destination有任何的重叠,复制的结果都是未定义的 memcpy函数最终返回的是目标空间的起始地址 //函数的一种写法: 这个函数最终返回的是目标空间的起始地址...: //函数的一种写法: //这个函数最终返回的是目标空间的起始地址 void* my_memcpy(void *dest, const void*src, size_t num) { assert...,非要使用,结果就是未定义的 //只负责不重叠的内存 函数的返回值是void*类型的数据 这个memcpy函数有三个数据 2.memmove--内存移动--使用和模拟实现 2.memmove--内存移动...//总之:这个拷贝是分三块区域的,最前面的一块区域满足dest<src //我们只能从前往后进行拷贝,不然会出错误 //而剩下的两块区域可以同时从后往前进行拷贝,那么我们就将这两块区域放在一起 在C语言标准中

    10910

    C语言函数

    其实在C语⾔也引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。     C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。...在C语⾔中我们⼀般会⻅到两类函数: 库函数 自定义函数 二、库函数 1.标准库和头文件     C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数C语⾔的国际标准ANSI C规定了⼀些常⽤的函数的标准...,相关的函数和类型等信息,库函数的学习不⽤着急⼀次性全部学会,慢慢学习,各个击破就⾏ 2.库函数使用方法 库函数的学习和查看⼯具很多,⽐如: C/C++官⽅的链接:https://zh.cppreference.com...这⾥我们需要知道数组参的⼏个重点知识: (1)函数的形式参数要和函数的实参个数匹配 (2)函数的实参是数组,形参也是可以写成数组形式的 (3)形参如果是⼀维数组,数组⼤⼩可以省略不写 (4)形参如果是...⼆维数组,⾏可以省略,但是列不能省略 (5)数组参,形参是不会创建新的数组的 (6)形参操作的数组和实参的数组是同⼀个数组    现在我们开始着手创建这两个函数,如图: 现在我们来看看代码能不能正常跑起来

    10410

    C语言函数

    其实在C语言也引入函数(function)的概念,有些翻译为:子程序,子程序这种翻译更加准确一些。 C语言中的函数就是一个完成某项特定的任务的一小段代码。这段代码是有特殊的写法和调用方法的。...C语言的程序其实是由无数个小的函数组合而成的,也可以说:一个大的计算任务可以分解成若干个较小的函数(对应较小的任务)完成。...同时一个函数如果能完成某项特定任务的话,这个函数也是可以复用的,提升了开发软件的效率。 在C语言中我们一般会见到两类函数: 库函数 自定义函数 2....库函数 2.1 标准库和头文件 C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数C语言的国际标准ANSIC规定了一些常用的函数的标准,被称为标准库,那不同的编译器厂商根据ANSI提供的C语言标准就给出了一系列函数的实现...把怎么解决这个问题呢?就是函数调用之前先声明⼀下is_leap_year这个函数,声明函数只要交代清楚:函数名,函数的返回类型和函数的参数。

    6910

    C语言——函数

    导读 : 这篇文章主要讲解一下C语言函数的一些基本知识。 前言:函数的概念 C语言中的函数又常常被称为子程序,是用来完成某项特定的工作的一段代码。...从函数的定义角度:我们可以把函数分为库函数和自定义函数 一,库函数: 库函数是由C语言编译系统提供的,已经有一定功能的,我们只需在程序前包含有该函数原型的头文件就可以直接使用这些函数。...("yeah"); // printf就是C语言提供的有打印功能的库函数,不需要我们自己定义 } 寻找C中的库函数及其有关的头文件的网址(C/C++官方的链接): http://zh.cppreference.com...2,实参列表中的参数(即实参)可以是变量,常量和表达式 3,实参之间用逗号隔开 4,在C语言中,出了main函数,其余的函数调用前要有函数声明(原型) 函数声明 ret_type name(形式参数...C语言中的函数之间都是平行的,不分上下级。

    9610

    C语言----函数

    1.函数的概念 函数:founction c语言的程序代码都是函数组成的 c语言中的函数就是一个完成某项特定的任务的一段代码,这段代码有特殊的写法和调用方法 c语言中我们一般见到两种函数: .库函数 ....= a + b; int c = Add(a, b);//使用函数,调用函数,调用函数就跑到1~7行调用函数了,把a传给x,b传给y //输出 printf("%d", c);...= a + b; int c = Add(a, b);//使用函数,调用函数 //输出 printf("%d", c); return 0; } 在调用函数的时候,真实传递给函数额参数叫...//set_arr设置数组,把arr数组中的sz个数组设置一下,这里不能写arr[10],因为arr[10]是数组中下标为10的那个数,如果要数组的话,数组名就行了 //打印数组的函数...(int x, int y)//static修饰函数,让函数外部链接属性变为内部链接属性 // 只能在自己所在的.c文件中使用,其他.c文件中无法使用 //{ // return x + y; /

    6110

    C语言函数

    函数概念 1. C语言中的函数就是:完成某项特定任务的一小段代码。 2. 类比一个小工厂,里面有已经设定好的特定的步骤,就是实现函数功能的过程。 函数分类 库函数 1....void InitListNode(ListNode** pphead)//由于要改变phead指针的指向,所以要传入phead的地址,即使用ListNode** pphead。...函数的实参是数组,那么就有两种形参,第一种是以数组的形式来接收,第二种是以指针的形式来接收。(都是传递地址调用) 3. 形参接收的数组和实参的数组是同⼀个数组 。...//.c中存放主函数和自定义函数的调用。 //.c中主函数要加上 “.h” 的声明。 例如:写一个加法函数。...); printf("%d", c); return 0; } 存放主函数 文件 int add(int a, int b) { return (a + b); } 存放自定义函数

    5000

    C语言函数

    一、函数的概念 数学中我们见过函数的概念,例如y=kx+b,k和b都是常数,给任意一个x就可以得到y 而C语言也引入了函数(function)这个概念,C语言中的函数就是一个完成某项特定任务的一小段代码...因为C语言的程序是由无数个小的函数组合而成的,所以我们也把函数叫做子程序。...而在C语言中存在这样两种类型的函数: 库函数:现成的,可以直接使用的函数 自定义函数:根据实际需要自己设计的函数 二、库函数 2.1 标准库和头文件 1、C语言只是规定了使用的语法规则 2、但C语言不提供库函数的...3、不过C语言的国际标准ANSI C规定了一些库函数的各种信息 比如说scanf:名字,参数,返回类型,函数的功能………… 4、而C语言的编译器厂商根据这些规定来实现这些函数 比如微软——MSVC——...比如memcpy函数C语言标准中规定的是拷贝空间不重叠的内存,而memmove函数C语言中规定的是拷贝空间重叠的内存。

    13210
    领券