c++指针使用形参改变实参的方法

将10个整数按由小到大的顺序排列

#include <iostream>
using namespace std;
int main()
{
 //使用形参改变实参数
 //将10个整数按由小到大的顺序排列
 void select_sort(int *p, int n);//函数声明
 int a[10], i;
 cout << "enter the originl array:" << endl;
 for (i = 0; i < 10; i++) //输入10个数
 cin >> a[i];
 cout << endl;
 select_sort(a,10); //函数调用,数组名作实参
 cout << "the sorted array:" << endl;
 for (i = 0; i < 10; i++) //输出10个已排好序的数
 cout << a[i] << " ";
 cout << endl;
 system("pause");
 return 0;
}

void select_sort(int *p, int n) //用指针变量作形参
{
 int i, j, k, t;
 for (i = 0; i < n - 1; i++)
 {
 k = i;
 for (j = i + 1; j < n; j++)
  if (*(p + j) < *(p + k)) k = j; //用指针法访问数组元素
 t = *(p + k); *(p + k) = *(p + i); *(p + i) = t;
 }

}

以上这篇c++指针使用形参改变实参的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++形参与实参的区别实例解析

    本文以实例阐述了C++中形参与实参的区别,有助于读者加深对于C++形参与实参的认识. 形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用.实参出现在主调函数中,进入被调函数后,实参变量也不能使用. 形参和实参的功能是作数据传送.发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送. 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元.因此,形参只有在函数内部有效. 函数调用结束返回主调函数后则不能再使用该

  • 老生常谈C++中实参形参的传递问题

    函数中参数的传递 这里说的传递当然是指 实参是如何传递给形参的啦 还挺复杂的~~~~~~~~⊙﹏⊙b汗,这里讲述了4种参数传递的情况和注意事项: 1.非引用形参 这是最普通,也是最简单的形参传递了. 参数传递,即是使用实参副本(注意啊,是副本,不是实参本身)来初始化形参: 因此,在函数体内对形参的修改不会影响实参的值. 如果形参是指针类型的,那么函数体内是否可以修改指针所指向的对象的值呢? 如果您产生这样的疑问,表示您很有想法~~~ 答案是~~~需要分情况讨论. 如果函数的形参是非const类型

  • c++指针使用形参改变实参的方法

    将10个整数按由小到大的顺序排列 #include <iostream> using namespace std; int main() { //使用形参改变实参数 //将10个整数按由小到大的顺序排列 void select_sort(int *p, int n);//函数声明 int a[10], i; cout << "enter the originl array:" << endl; for (i = 0; i < 10; i++)

  • Java必踩的坑之方法中形参、实参传递

    首先亮明Java中方法参数传递的规则,这两点很重要: 如果实参是基本类型(包括包装类型)或者String,则实参不会变(传的是值): 如果实参是对象集合或者数组,则实参会改变(传的是引用). 上面这两条比较简单,笔者就不展开说了,这里只说一点,关于方法中引用的传递,很多人会踩坑,如下: 我们先以数组举例,如下代码,很简单的几行,大家猜一下会最终输出的结果是什么样子的呢? public class PassByValueDemo { public static void main(String[]

  • Java形参和实参的实例之Integer类型与Int类型用法说明

    经常会有这样一道面试题,有两个整形变量分别是a = 1 ,b = 2.编写一个方法swap互换他们的值. 
class
 
Main
 
{


 
public
 
static
 
void
 main
(
String
[]
 args
)
 
{


 
Integer
 a 
=
 
1
;


 
Integer
 b 
=
 
2
;


 
System
.
out
.
println
(
"a="
 
+
 a 
+
 
",b="
 
+
 b


  • javascript管中窥豹 形参与实参浅析

    引子: 今天看到别人的一个题目: 复制代码 代码如下: function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]) } fn() 感觉自己对这也是一知半解,自己也可以试一下,于是就特地分析一下. 本想从语言的角度来分析,无奈功力不够,只能粗浅的尝试一下,于是称之管中窥豹,还望大牛指正. 这是昨天写的,今天吃饭的时候又想了一下,想来想去感觉有些问题还是说得不靠谱,于是又试着修改了一下. 每一本js入门书籍都会提到,J

  • c语言的形参和实参传递的区别详解

    参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程.参数传递有3种方式: 值传递 地址传递 引用传递 tips: 被调用函数的形参只有函数被调用时才会临时分配存储单元,一旦调用结束占用的内存便会被释放 值传递和地址传递,传递的都是实参的一个拷贝 C语言中实参和形参之间的数据传递是单向的"值传递",单向传递,只能由实参传给形参,反之不行 输出格式并没有选择%p而是选择了%d,因为十进制的数看起来更直观 1 值传递 如果只是传递值

  • C语言指针和数组深入探究使用方法

    目录 1.数组参数和指针参数 1.1 一维数组传参 1.2 一级指针传参 1.3 二维数组参数和二级指针参数 1.4 野指针的问题 2.函数指针 3.函数指针数组 4.指向函数数组的指针 5.回调函数 6.一道笔试题 1.数组参数和指针参数 1.1 一维数组传参 这里在前几期我们已经初略的见识过了,但是这里我们要提一个概念,数组给函数传参是会发生降维的,降维成什么呢?我们看代码: 这里通过打印形参的大小,发现是 4,其实也不奇怪,目前我们是 32 位操作环境,所以一个指针也就是 4 个字节,所以

  • php中函数的形参与实参的问题说明

    当实参个数<形参个数 时php会发出警告,因为php的解释机制会认为,有参数被定义了却没有被使用,那很可能会影响函数的功能.所以会发出警告.然而,当 实参个数>形参个数 时,php是不会报错的,它只会取前面的几个参数,多余的则将会丢弃. 在PHP中编写函数,一般情况下调用函数的时候,改变的值都是形参而不是实参.但是如果在形参中加入地址符时候就会改变实参的值,为什么? 请看下面的例子: 复制代码 代码如下: <?php //编写一个函数swap(),测试该函数的实参值无改变 functio

  • C语言形参和实参传值和传址详解刨析

    目录 例题 分析 实参与形参 实际参数(实参): 形式参数(形参): 修改 分析 传值和传址 传值调用 传址调用 讲解知识点之前,我们先来做一道题! 例题 写一个函数可以交换两个整形变量的内容 例如: 交换前:20 30 交换后:30 20 题目让我们用函数的方式写 #include <stdio.h> void Swap1(int x, int y) { int z = 0; z = x; x = y; y = z; } int main() { int a = 0; int b = 0;

  • BootStrap select2 动态改变值的方法

    1,selec2动态赋值 var temp=JSON.stringify({ id: "1|所有停车场", name: "所有停车场" }); $("#e_pid").attr("value", tempP); $("#e_pid").select2({ placeholder: "查找停车场名称(多选)", language: "zh-CN", minimumInp

随机推荐