·小白求问


qq_1477399277


 发表于:2016-10-25 20:42:27
楼主  
大神们,我想问下调用函数Arrage的时候,括号里为什么不是iStudent[10]

下载附件  回复  引用  举报  修改   删除   

 
 讨论区
 ·这是我自己写的,写成a[10],结果是-53044633,若是a,则正常  回复于:2016-10-25 20:51:03
1楼  


qq_1477399277


qiu

下载附件 引用   修改   删除   

 
 ·iStudent[10] 这种语法形式,代表 iStudent这个数组中的第10个元素  回复于:2016-10-25 21:27:06
2楼  


again


iStudent[10] 这种语法形式,代表 iStudent这个数组中的第10个元素, 求平均数时,显示应该传的是整个数组,而不是第10个元素。

并且,这个数组的元素个数是10, 其最大下标是9。iStudent[10]这样访问,会数组越界,也就是访问了不存于于数组中的元素。

引用   修改   删除   

 
 ·为何这个引用函数又可以iArrayName[10]的呢  回复于:2016-10-26 19:30:00
3楼  


qq_1477399277


#include<stdio.h>

void Evaluate(int iArrayName[10]); /*声明赋值函数*/
void Display(int iArrayName[10]); /*声明显示函数*/

int main()
{
int iArray[10]; /*定义一个具有10个元素的整型数组*/

Evaluate(iArray[10]); /*调用函数进行赋值操作,将数组名作为参数*/
Display(iArray[10]); /*调用函数进行赋值操作,将数组名作为参数*/
return 0;
}
/*///////////////////////////////////////////////////////////*/
/* 数组元素的显示 */
/*///////////////////////////////////////////////////////////*/
void Display(int iArrayName[10])
{
int i;
for(i=0;i<10;i++)
{
printf("the member number is %d\n",iArrayName[i]);
}
}
/*///////////////////////////////////////////////////////////*/
/* 进行数组元素的赋值 */
/*///////////////////////////////////////////////////////////*/
void Evaluate(int iArrayName[10])
{
int i;
for(i=0;i<10;i++)
{
iArrayName[i]=i;
}
}

引用   修改   删除   

 
 ·哪本书,第几版  回复于:2016-10-29 20:55:49
4楼  


again


引自:3楼
#include<stdio.h>

void Evaluate(int iArrayName[10]); /*声明赋值函数*/
void Display(int iArrayName[10]); /*声明显示函数*/

int main()
{
int iArray[10]; /*定义一个具有10个元素的整型数组*/

Evaluate(iArray[10]); /*调用函数进行赋值操作,将数组名作为参数*/
Display(iArray[10]); /*调用函数进行赋值操作,将数组名作为参数*/
return 0;
}
/*///////////////////////////////////////////////////////////*/
/* 数组元素的显示 */
/*///////////////////////////////////////////////////////////*/
void Display(int iArrayName[10])
{
int i;
for(i=0;i<10;i++)
{
printf("the member number is %d\n",iArrayName[i]);
}
}
/*///////////////////////////////////////////////////////////*/
/* 进行数组元素的赋值 */
/*///////////////////////////////////////////////////////////*/
void Evaluate(int iArrayName[10])
{
int i;
for(i=0;i<10;i++)
{
iArrayName[i]=i;
}
}



回复:


哪本书,第几版,第几页的程序?

这样写本身是错误的。在 vs2015上面己经编译不过去了

引用   修改   删除   

 
 ·不好意思,最近有点事,  回复于:2016-11-04 23:10:31
5楼  


qq_1477399277


是C语言从入门到精通第2版的第203页的

引用   修改   删除   

 

Copyright©www.mingrisoft.com All Rights Reserved!
吉林省明日科技版权所有并提供技术支持