
正文
c语言中指针函数参数,c语言指针函数调用例子
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言指针作函数参数时的返回问题
进入函数后,函数创建几个空间给形参,再把实参数值拷过来。退出函数时,把形参空间释放,则影响不到实参。这就是值传递。
p是指针,操作的是实际的数据块,return语句是返回一个指定值给调用者,调用者可选择保留;如果直接把int型变量a直接传递给指针p,p可能超出用户地址空间,崩溃了。
那你应该用指针的指针才行,然后函数返回指针。
用指针作参数返回值,我理解是希望指针指向的地址内的值在被调函数中改变,而在主调中指针指向的地址不变,从而实现改变值的目的。在这里你实际是传了一个地址过去,然后在被调函数中将一个地址赋给指针。
相关问答
Q1: C语言用指针作函数参数
1、Average grade: 600 在这个例子中,我们使用了一维数组 grades 和指针 *grades 作为函数参数。在函数 print_grades 中,我们遍历数组并打印每个元素。在函数 average_grade 中,我们计算数组中所有元素的平均值。
2、C语言中,函数参数只能传值。与传值对应的是传引用,C语言不支持函数参数传引用,C++语言才支持。C++传引用函数:void foo(int& a) { a = 3; } 假如a = 2,执行foo(a)后,a = 3。
3、参数 是地址传递,fun(&b,a);中传入a 字符 。*c=*c+1将c的值变为b字符。主函数 的值改变。第二个参数是值传递,所以在 函数 中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。b的值是b。
Q2: c语言:用指针做函数参数从10个数中找出其中最大值和最小值。
自定义一个函数void Input_Max_Min(int *p,int *pl,int *ps)来完成题设要求,其中p是数组首指针,pl是最大值位置(下标)变量指针,ps是最小值位置(下标)变量指针。在主函数中输出结果。
i];} } ave = 0;for (i = 0; i 10; i++){ ave += data[i];} ave /= 10;return;} 参数data就是输入的10个数的指针。max是输出的最大值指针。min是输出的最小值指针。ave是输出的平均是指针。
输入剩余9个数,与最大值比较,如更大则替换。3 输出最大值。
Q3: C语言指针作函数参数中数据的双向传递是什么意思?
我们提出的双向传递是,通过把原来的当做实参变量的地址当做实参传入函数,在函数内部通过修改指针形参指向的地址来把值传递出函数;作为变量地址的实参依然不可能在函数内部被修改。
首先,指针是一种变量类型,它存储的是一个内存地址。也就是说,指针变量中存储的值是另一个变量的内存地址。在C语言中,指针变量必须先进行初始化,可以指向任何一种数据类型。
引用传递就是将实参地址传递给函数,函数接收到地址后并不另外在栈上分配临时内存空间储存该地址,而是直接当做实参本身使用,如果实参含有有效数据,则函数可以通过引用直接取出(读),也可以对其赋值(写)。
表示成员选择(指针),选择结构体的成员变量。结构:运算符 - 是指向结构体成员运算符,结合方向为自左向右。用法:对象指针-成员名。
关于c语言中指针函数参数和c语言指针函数调用例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







