[C++程序设计]用指针变量作函数参数接收数组地址
#include <iostream>
using namespace std; void select_sort(int *p, int n)
{
int i, j, k;
for(i = ; i < n - ; i++)
{
for(j = i + ; j < n; j++)
{
if(p[i] > p[j])
{
k = p[i];
p[i] = p[j];
p[j] = k;
}
}
}
} void select_sort1(int *p, int n)
{
int i, j, k;
for(i = ; i < n - ; i++)
{
for(j = i + ; j < n; j++)
{
if(*(p + i) > *(p + j))
{
k = *(p + i);
*(p + i) = *(p + j);
*(p + j) = k;
}
}
}
} void printf(int *p, int n)
{
for(int i = ; i < n; i++)
cout << *(p + i) << " ";
cout << endl;
} int main()
{
int n = ;
int a[] = {, , , , , , , , , };
select_sort1(a, );
printf(a, );
return ;
}
C++编译系统将形参数组名一律作为指针变量来处理,实际上在函数调用时并不存在一个占有存储空间的形参数组,只有指针变量。
实参数组名a代表一个固定的地址,或者说是指针型常量,因此要 改变a的值是不可能的。如
a++; //语法错误,a是常量,不能改变
而形参数组名是指针变量,并不是一个固定的地址值。它的值是可以改变的。在函数调用开始时,它接收了实参数组首元素的地址,但在函数执行期间,它可以再被赋值。如
f(array[],int n)
{ cout<<array;
array=array+3;
cout<<*arr<<endl;
}
[C++程序设计]用指针变量作函数参数接收数组地址的更多相关文章
- C语言---指针变量作为函数参数
在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着 ...
- C语言指针变量作为函数参数
0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: #include <stdio.h> vo ...
- [C++程序设计]用函数指针变量调用函数
指针变量也可以指向一个函数.一个函数在编译时被分配给一个入口地址.这个函数入口地址就称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数 #include <iostream ...
- C++(二十二) — 指针变量、函数指针、void指针
1.指针变量 (1)指针变量必须在初始化后才可以正常使用,初始化就是给他分配一个有效的数据地址. 先初始化,后使用. (2)指针可以进行加减运算,++ 或者 --:将指针的位置向前或者向后移动一个数据 ...
- golang中数组指针和指针数组当做函数参数如何修改数组中的值
先理解:数组指针它的类型时指针,指针数组它的类型时数组 1. 数组指针当做函数的参数 package main import "fmt" func changeData(dataA ...
- C++用指针变量作为函数的参数接受数组的值的问题的总结
实参和形参的四种结合方式 实参 形参 实例 数组名 数组名 1.1 数组名 指针变量 1.2 指针变量 数组名 1.3 指针变量 指针变量 1.4 本文以输入10个整数,然后对其进行排序,然后输出的程 ...
- ES6,变量,函数-参数,结构赋值
变量 var 1.可以重复声明. 无法限制修改-, 没有块级作用域 let不能重复声明,变量-可以修改,块级作const不能重复声明,常量-不能修改,块级作 函数——箭头函数function 名字() ...
- C语言--- 高级指针2(结构体指针,数组作为函数参数)
一.结构体指针 1. 什么是结构体指针?指向结构体变量的指针 结构体: typedef struct stu{ char name[ ...
- C++数组(指针)作为函数参数
本文的学习内容参考:http://blog.csdn.net/wwdlk/article/details/6322843 1.当用数组名作为函数参数时,函数的实参和形参都应为数组名(或者指针): Ex ...
随机推荐
- jQuery图片延迟加载插件
在一些图片较多的页面上,如果图片都一起加载网页的速度会比较慢,而且也浪费流量. 使用图片延时加载插件就解决这些问题. 方法: 引入jquery和插件文件 <script src="jq ...
- MVC之实体框架(数据持久化框架)EntityFrameWork(EF)
EF - EntityFrameWork 中文名:实体框架(数据持久化框架) 1.使用EF查询(Linq to EF) 1.1使用标准查询运算符来查询 OumindBlogEntities db = ...
- ADT 连接手机运行android应用程序时报错
The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ...
- WebApi 能支持Session
由于项目实际需要,我希望让WebApi服务也能支持Session,所以便查找资料按照网上的方法开始着手实验. 然后就有了以下的代码,主要是说让WebApi支持Session,要重写Global.asa ...
- DELL配置信息
CPU详情CPU厂商 英特尔CPU (英特尔)Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHzCPU核心数 2CPU默认频率 2400 MhzCPU外频 533 MHz ...
- 【转】Notepad++ 快捷键 大全 官方整理过来的
原文网址:http://www.lianyue.org/2011/756/ Ctrl+C 复制Ctrl+X 剪切Ctrl+V 粘贴Ctrl+Z 撤消Ctrl+Y 恢复Ctrl+A 全选Ctrl+F 键 ...
- juicer模板引擎使用
http://www.juicer.name/ <script src="~/Scripts/jquery-1.8.2.min.js"></script> ...
- WEB程序会话管理--HttpSession和Cookie
WEB应用的会话管理的原理: 由于WEB应用的请求和响应是基于HTTP的,而HTTP由属于无状态的通信协议,只能记录本次请求的信息,因此服务器不会记住这一次的请求和下一次请求的关系.所以会话管理的原理 ...
- input表单 radio对象的判断选择
/*选择约见对象*/ var lenth=$('input[name="single"]').length; var len=0; $('input[name="sing ...
- ajax的封装
ajax是前端工程中与后台进行数据交互的一门重要技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.jquer ...