www.fltk.net > # inCluDE <iostrEAm.h> voiD swAp(int A,int B...

# inCluDE <iostrEAm.h> voiD swAp(int A,int B...

#includevoid main(){ int a=3; int b=4; int c=5; printf("%d,%d\n", a,b);//这里少个逗号}

#include <iostream.h> #include <stdio.h> #define N 20 void swap(int *,int *); int main() { int a[N]={1,2,3,4,5,6,7,8,9,10},b[N]={10,9,8,7,6,5,4,3,2,1}; swap(a,b); return 0; } void swap(int *a,int *b) { int temp,i; for( i=0;i<N;i++) {temp=*(a+i); *(a+i)=*(b+i); *(b+i)=temp; } }

void swap(int *a, int *b) { int t; t = *a; *a = *b; *b = t; } swap(p, q) 注:和函数有没有返回没什么关系. 此方法交换的是i和j的值,p和q地址不变 void swap(int **a, int **b) { int *t; t =*a; *a = *b; *b=t; } swap(&p, &q); 此方法交换的是p和q的值,i和j不变

因为你运行的Swap函数并不会返回它执行的结果.就算你在里面给a赋值1000,跑到printf的时候还是5和6.

你定义的二维数组a是a[3][2],b也是,但是你后来的这句swap(a[3][2],b[3][2],6);a和b下标都超过数组的范围了.C语言不检查数组下标,所以它不会是提示错误,而是警告而已.请检查你的下标,c语言下标从0开始到数组大小减1

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com