程序没有问题。
十年的黑河网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整黑河建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“黑河网站设计”,“黑河网站推广”以来,每个客户项目都认真落实执行。
这是个数组反序函数。函数名 inv,有2个形式参数,int x[] 是一个数组 , int n 是该数组元素个数。void 型函数,无return 语句。
for(i=0;in/2;i++) 循环语句,循环到 数组长度的 一半。 第 i 个元素 与 j=n-1-i;个元素交换 ,即 第一个元素与最后一个元素交换,第二个元素与倒数第2个元素交换,。。。循环到 数组长度的 一半时,就完成了 反序。反序结果由参数1带回去。
mian() 函数中的 反序函数 调用 语句inv(a,5); 这里的 a 是 main() 里的
局部量 a[5]={3,7,9,11,0}, 该数组元素个数是 5。这个 a, 与全局量 int a=100; 没有关系。
for(i=0;i5;i++) printf("%d",a[i]); 输出反序后的结果。
void inv(int x[], int n);
这个声明了一个函数,x[],表示x是一个数组(你可以这么理解)
你就看成是void inv(int *x, int n) 就可以了。
根据上下文,n表示数组x的长度,也就是说x里面包含了多少个数据。
inv(a, 10)用来调用inv函数,a就是数组a[10]的首地址,即a = a[0]
恩,10是告诉inv函数处理其中的10个数据,免得访问越界。
void inv(int *x,int n) // x表示一个int的指针,或者int类型的数组,n表示一个int变量,从参数上看,可能x是数组,n是数组大小
{
int *p,temp,*i,*j,m=(n-1)/2;//变量定义,p,i,j,都是指针,temp,m,都是变量
i=x;j=x+n-1;p=x+m;// 给指针i,j,p赋值,让i指向数组x的第一个元素,j指向x的最后一个元素,p为x的中间的元素
for(;i=p;i++,j--) // 循环 从 第一个元素开始,到中间的元素结束,
{temp=*i;*i=*j;*j=temp;}
交换 第z个元素和倒数第z个元素,典型的交换算法,z表示i每次循环所指向的数字的索引
return;
}
inv是求逆矩阵。x‘是矩阵转置(对复数矩阵而言是共轭转置)。
是有参数两个,a是数组名, 10 也是参数这 两个是实参, 是传给inv函数调用的
C++语言支持函数重载,C 语言不支持函数重载。函数被 C++编译后在库中的名字
与 C 语言的不同。假设某个函数的原型为: void foo(int x, int y);
该函数被 C 编译器编译后在库中的名字为 _foo,而 C++编译器则会产生像
_foo_int_int 之类的名字。
C++提供了 C 连接交换指定符号 extern“C”来解决名字匹配问题。