首页 > 代码库 > [C++程序设计]用指针变量作函数参数接收数组地址
[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;
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。