C语言及程序设计提高例程-25 指针作函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解

例:冒泡排序函数的新写法

#include <stdio.h>
void bubblesort(int*, int);
int main( )
{
  int i,a[10]= {3,5,9,1,3,6,-9,-7,10,12};
  bubblesort(a,10);
  for(i=0; i<10; i++)
    printf("%d ", a[i]);
  return 0;
}
void bubblesort(int *p, int n)
{
  int i,j,t;
  for (i=0; i<n-1; i++)
    for(j=0; j<n-i-1; j++)
      if (*(p+j)>*(p+j+1))
      {
        t=*(p+j);
        *(p+j)=*(p+j+1);
        *(p+j+1)=t;
      }
  return;
}

作为形式参数的数组,披着羊皮的狼!
(作为形参的数组名,实质上就是指针,而不是固有定地址值的数组)

#include <stdio.h>
void f(int arr[], int n);
int main()
{
    int a[10]= {0,1,2,3,4,5}, n=10;
    f(n, 10);  //此处有警告
    return 0;
}
void f(int arr[], int n)
{
    printf("%d\n", arr[1]);
}
时间: 2024-08-02 11:35:00

C语言及程序设计提高例程-25 指针作函数参数的相关文章

C语言及程序设计提高例程-27 编写查找和排序函数

贺老师教学链接  C语言及程序设计提高 本课讲解 用函数实现二分查找 #include <stdio.h> int binary_search(int arr[], int n, int k); #define SIZE 10 int main( ) { int d[SIZE] = {1, 3, 9, 12, 32, 41, 45, 62, 75, 77}; int low, high,mid,key,index=-1; printf("Input a key you want to

C语言及程序设计提高例程-35 使用指针操作二维数组

贺老师教学链接  C语言及程序设计提高 本课讲解 使用指向二维数组元素的指针 #include <stdio.h> int main( ) { int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0]; p<a[0]+12; p++) { printf("%3d ",*p); } return 0; } 使用指向一维数组的指针 #include <stdio.h> int main(

C语言及程序设计提高例程-7 返回指针的函数

贺老师教学链接  C语言及程序设计提高 本课讲解 返回指针的函数 #include <stdio.h> int *max(int *x, int *y) { int *t; if(*x > *y) t = x; else t = y; return t; } int main() { int a, b, *p; scanf("%d %d", &a, &b); p = max(&a, &b); printf("max = %d

C语言及程序设计提高例程-28 字符串、字符数组、字符指针

贺老师教学链接  C语言及程序设计提高 本课讲解 用指向字符的指针引用字符串 #include <stdio.h> int main( ) { char str[]="I am happy"; char *s; s=str; puts(str); puts(s); return 0; } 杜绝(指向字符的)野指针 (1) #include <stdio.h> int main( ) { char str[80]; char *s=str; gets(s); pu

C语言及程序设计提高例程-37 操作字符串数组

贺老师教学链接  C语言及程序设计提高 本课讲解 例:求最小姓氏 #include <stdio.h> #include <string.h> char *min_name(char [][10], int); int main( ) { char name[5][10]= {"Zhao", "Qian", "Sun", "Li", "Zhou"};; printf("%s

C语言及程序设计提高例程-15 小小型应用系统开发指导(三)

贺老师教学链接  C语言及程序设计提高 本课讲解 说明:     本程序在学习者仅掌握了基本数据类型和控制结构.函数的前提下设计,模拟银行储蓄系统的基本功能.     程序运行前,请在程序所在文件夹中,自建文件password.txt,保存123456作为初始密码,自建文件balance.dat,保存1000,作为初始的余额.    运行结束后,对数据所做的所有修改均可以利用文件保存下来.     与上一个版本相比,我们学习了模块化程序设计及用函数的实现方法,所以有能力重构了整个软件的结构.本程

C语言及程序设计提高例程-16 数组的引入

贺老师教学链接  C语言及程序设计提高 本课讲解 引子:求5位同学的平均成绩 #include <stdio.h> int main( ) { int a1, a2, a3, a4, a5; int total=0, ave; scanf("%d %d %d %d %d", &a1,&a2,&a3,&a4,&a5); total+=a1; total+=a2; total+=a3; total+=a4; total+=a5; ave=

C语言及程序设计提高例程-36 多维数组作函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解 用多维数组名作函数参数 #include <stdio.h> int max_value(int array[][4]); int main( ) { int a[3][4]= {{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n", max_value(a)); return 0; } int max_value(int array[]

C语言及程序设计提高例程-12 变量的存储类别

贺老师教学链接  C语言及程序设计提高 本课讲解 用extern声明外部变量:一个文件内的全局变量 #include <stdio.h> int max(int,int); int main( ) { extern int a,b; //对全局变量a,b作提前引用声明 printf("%d\n", max(a,b)); return 0; } int a=15,b=-7; //定义全局变量a,b int max(int x,int y) { int z; z=x>y?