[C++程序设计]用指针变量作函数参数接收数组地址

 1 #include <iostream>
 2 using namespace std;
 3
 4 void select_sort(int *p, int n)
 5 {
 6     int i, j, k;
 7     for(i = 0; i < n - 1; i++)
 8     {
 9         for(j = i + 1; j < n; j++)
10         {
11             if(p[i] > p[j])
12             {
13                 k = p[i];
14                 p[i] = p[j];
15                 p[j] = k;
16             }
17         }
18     }
19 }
20
21 void select_sort1(int *p, int n)
22 {
23     int i, j, k;
24     for(i = 0; i < n - 1; i++)
25     {
26         for(j = i + 1; j < n; j++)
27         {
28             if(*(p + i) > *(p + j))
29             {
30                 k = *(p + i);
31                 *(p + i) = *(p + j);
32                 *(p + j) = k;
33             }
34         }
35     }
36 }
37
38 void printf(int *p, int n)
39 {
40     for(int i = 0; i < n; i++)
41         cout << *(p + i) << " ";
42     cout << endl;
43 }
44
45 int main()
46 {
47     int n = 10;
48     int a[] = {20, 4, 5, 22, 50, 23, 24, 29, 90, 1001};
49     select_sort1(a, 10);
50     printf(a, 10);
51     return 0;
52 }

C++编译系统将形参数组名一律作为指针变量来处理,实际上在函数调用时并不存在一个占有存储空间的形参数组,只有指针变量。

实参数组名a代表一个固定的地址,或者说是指针型常量,因此要 改变a的值是不可能的。如

a++; //语法错误,a是常量,不能改变

而形参数组名是指针变量,并不是一个固定的地址值。它的值是可以改变的。在函数调用开始时,它接收了实参数组首元素的地址,但在函数执行期间,它可以再被赋值。如

f(array[],int n)

{  cout<<array;

  array=array+3;

  cout<<*arr<<endl;

}

[C++程序设计]用指针变量作函数参数接收数组地址

时间: 2024-10-02 06:40:47

[C++程序设计]用指针变量作函数参数接收数组地址的相关文章

编程题:指针变量作函数参数,将两个整数按由大到小的顺序输出。

分析:通过指针变量作函数参数,无需返回值和全局变量,主调函数就可以使用被调用函数改变的值. #include<stdio.h> void swap(int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } void main() { int a=3,b=4; int *ptr1,*ptr2; ptr1=&a;ptr2=&b; if(a<b) swap(ptr1,ptr2); printf("%d,%d\n",

C语言 结构指针变量作函数参数和链表基础

结构体变量作为函数参数(传递整个结构体): 指向结构体变量的指针作为实参(传递结构体的地址): 数据结构之链表:   原文地址:https://www.cnblogs.com/souhaite/p/10960457.html

C言语指针变量作为函数参数

在C言语中,函数的参数不只可所以整数.小数.字符等详细的数据,还可所以指向它们的指针.用指针变量作函数参数可以将函数内部的地址传递到函数外部,使得在函数外部可以操作函数内部的数据,而且这些数据不会跟着函数的完毕而被烧毁.像数组.字符串.静态分派的内存等多是一系列数据的聚集,没有方法经过一个参数全体传入函数外部,只能传递它们的指针,在函数外部经过指针来影响这些数据聚集.有的时分,关于整数.小数.字符等根本类型数据的操作也必需要借助指针,一个典型的例子就是交流两个变量的值.有些初学者能够会运用下面的

C语言---指针变量作为函数参数

在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁.像数组.字符串.动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合.有的时候,对于整数.小数.字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值.有些初学者可能会使用下面的

C语言指针变量作为函数参数

0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: 1 #include <stdio.h> 2 3 void shuchu(int *p) 4 { 5 printf("%d\n", *p); 6 } 7 8 int main() 9 { 10 int a; 11 int *pa; 12 scanf("%d", &a); 13 pa = &a;

指针变量作为函数参数(1)

普通函数参数 下面程序试图改变main函数中a和b的值 #include<stdio.h> void fun(int x,int y) { int c; c=a; a=b; b=c; } int main() { int a=1,b=2; fun(a,b); printf("a=%d b=%d\n",a,b); return 0; } 函数参数传递分析: 实参: &a 28ff18 a  1 &b 28ff14 b  2 在将实参传递给形参的时候,编译器将实

(struct)结构体变量作为函数参数调用的方法小结

结构体变量.结构指针变量.结构数组作为函数的参数应用实例分析 struct stud { long int num; float score; }; /*结构体变量作为函数的参数,修改之后的成员值不能返回到主调函数*/ void funvr(struct stud t) { t.num=2000101; t.score=71.0; } /*结构体数组作为函数的参数,修改后的元素的成员值能返回到主调函数*/ void funar(struct stud t[]) //void funar(stru

指向结构体变量的指针作函数参数

 /********************* * 指向结构体变量的指针作函数参数 * ***********************/ #include<stdio.h> #include<string.h> struct student {  int num;  char name[20];  //char *name;    //若定义为指针则应与下面 stu.name = "jacob"; 配对使用,交叉使用则会报错                 //

[C++程序设计]用指向数组的指针作函数参数

1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 void output(int (*p)[4]); 7 int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; 8 output(a); 9 return 0; 10 } 11 12 void output(int (*p)[4]) 13 { 14 int i,j; 15 for(i = 0; i < 3; i ++) 1