在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。

  以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址。

#include <stdio.h> 
 
void main(void) 

 

void reversal(); 
static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
int i; 

for (i=0;i<10;i++) 

printf("%d ",a); 

printf("\n"); 
reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
 
for (i=0;i<10;i++) 

printf("%d ",a); 

printf("\n"); 
 

 
void reversal(x,n) 
int x[],n; /* 定义形式参数 */


int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */
int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */
for (i=0;i<=m;i++) 

j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */
temp=x; 

x=x[j]; 
x[j]=temp; 


 
/* 次题需要注意的是:这里由于a[10]和x[10]是共同享内存地址位的所以进行交换后a[10]的实际值也就发生了改变 */

#include <stdio.h> 
 
void main(void) 

 

void reversal(); 
static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
int i; 

for (i=0;i<10;i++) 

printf("%d ",a); 

printf("\n"); 
reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
 
for (i=0;i<10;i++) 

printf("%d ",a); 

printf("\n"); 
 

 
void reversal(x,n) 
int *x,n; /* 定义x为指针变量 */


int temp,*p,*i,*j; /* 这里需要注意的是temp用与交换的时候临时存储数据的 */
i = x; /* 利用指针变量i存储数组a的起始地址 */

p = x + ((n-1)/2); /* 计算最后一次循环的时候数组a的地址 */
j = x + n - 1; /* 计算数组a也就是a[9]的结束地址好用于交换 */

for (;i<=p;i++,j--) /* 利用循环和指针进行数组元素值的交换 */

temp=*i; /* 用temp临时存储*i也就是循环中a实际的值 */
*i=*j; 
*j=temp; 



 
/* 此例同样要注意到利用指针进行数组的操作同样改变了实际数组各元素的值 */

 
 

《挑战30天C++入门极限》在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。的更多相关文章

  1. 《挑战30天C++入门极限》 对C++中引用的补充说明(实例)

        对C++中引用的补充说明(实例) #include <iostream>    #include <string>    using namespace std;    ...

  2. 《挑战30天C++入门极限》C/C++中字符指针数组及指向指针的指针的含义

        C/C++中字符指针数组及指向指针的指针的含义 就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针. 先看下面的代码,注意看 ...

  3. 《挑战30天C++入门极限》C/C++中字符串常量的不相等性及字符串的Copy

        C/C++中字符串常量的不相等性及字符串的Copy #include <iostream>    void main(void)  {      if("test&quo ...

  4. 《挑战30天C++入门极限》C/C++中结构体(struct)知识点强化

        C/C++中结构体(struct)知识点强化 在上一个教程中我们已经简单的阐述了什么是结构体了,为了进一部的学习结构体这一重要的知识点,我们今天来学习一下链表结构. 结构体可以看做是一种自定义 ...

  5. 《挑战30天C++入门极限》入门教程:实例详解C++友元

        入门教程:实例详解C++友元 在说明什么是友元之前,我们先说明一下为什么需要友元与友元的缺点: 通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为pu ...

  6. 《挑战30天C++入门极限》C++面向对象编程入门:构造函数与析构函数

        C++面向对象编程入门:构造函数与析构函数 请注意,这一节内容是c++的重点,要特别注意! 我们先说一下什么是构造函数. 上一个教程我们简单说了关于类的一些基本内容,对于类对象成员的初始化我们 ...

  7. 《挑战30天C++入门极限》C++类静态数据成员与类静态成员函数

        C++类静态数据成员与类静态成员函数 在没有讲述本章内容之前如果我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢? ...

  8. 《挑战30天C++入门极限》C++类对象的复制-拷贝构造函数

        C++类对象的复制-拷贝构造函数 在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int ...

  9. 《挑战30天C++入门极限》C++面向对象编程入门:类(class)

        C++面向对象编程入门:类(class) 上两篇内容我们着重说了结构体相关知识的操作. 以后的内容我们将逐步完全以c++作为主体了,这也意味着我们的教程正式进入面向对象的编程了. 前面的教程我 ...

随机推荐

  1. 【洛谷 P3193】 [HNOI2008]GT考试(KMP,dp,矩阵乘法)

    题目链接 \(f[i][j]\)表示准考证号到第\(i\)位,不吉利数字匹配到第\(j\)位的方案数. 答案显然是\(\sum_{i=0}^{m-1}f[n][i]\) \(f[i][j]=\sum_ ...

  2. Elasticsearch 是什么

    Elasticsearch 是什么 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功 ...

  3. SQL SERVER-Extendevent系统视图

    --获得扩展事件的事件 select name,description from sys.dm_xe_objects where object_type='event' order by name - ...

  4. angularcli 第一篇(新建、组件、模块)

    1.新建并启动项目: 1.安装: npminstall -g @angular/cli 2.新建: ng new mytest 3.进入项目:cd mytest 4.启动: ng serve 5.打开 ...

  5. prometheus 告警规则

    GitHub网址1 https://github.com/samber/awesome-prometheus-alerts 网址2 https://awesome-prometheus-alerts. ...

  6. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇

    使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...

  7. zabbix监控MySQL状态值获取不到值原因分析

    在server端测试键值 [root@zbx-server etc]# zabbix_get -s MySQL-glibc -k "buffer_pool_wait_free" 如 ...

  8. IDRAC 固件升级操:

    Internal Use - Confidential IDRAC 固件升级操作: R630:https://downloads.dell.com/FOLDER05590166M/1/iDRAC-wi ...

  9. unity 之 场景切换进度条显示

    一.UI.建立slider适当更改即可: 二.新增loadScene脚本,用来进行场景切换,将其绑定任意物体上面.博主以放置主相机为例.参数分别为进度条(用来设置value值),显示进度文本text: ...

  10. 思考---(科研99% )VS (产品75%)

    转目前人脸识别技术的挑战是什么? - 知乎 标签: | 发表时间:-- : | 作者: 出处:https://www.zhihu.com 也是放假太闲,上知乎来锻炼一下手指. 在回答题主的问题的时候, ...