永发信息网

为什么在局部定义的变量显示是未定义的呢?

答案:2  悬赏:70  手机版
解决时间 2021-12-20 16:19
  • 提问者网友:献世佛
  • 2021-12-20 07:09
#include
void rever(int * r)
{
int i;
int * max;int * min ,*temp;
* max=0,* min=1000;
for(i=0;i<=9;i++)
{
if(r[i]>=*max)
{

max=r+i;
}
if(r[i]<=*min)
{
//q=(r+i);
min=r+i;
}

}
* temp= *(r);
*(r)=*min;
*min=*temp;

*temp=*(r+9);
* (r+9)=*max;
*max=*(r+9);

}
void main()
{

int a[10];int i;int j;int t ;;
printf("请输入九个数");
for(i=0;i<=9;i++)
{
scanf("%d",&t);
if(t>=1000)
{
printf("errok");
break;
}
a[i]=t;
printf("您第%d次输入的是:%d\n",i+1,a[i]);
}
printf("您输入的数组为:\n");
for(j=0;j<=9;j++)
printf("%d ",a[j]);
printf("\n");
rever(a);
printf("变换后的数组为:\n");

for(i=0;i<=9;i++)
{
printf("%d ",a[i]);

}
printf("\n");

}

1>h:\task\数组问题\源2.cpp(6) : warning C4700: 使用了未初始化的局部变量“max”
1>h:\task\数组问题\源2.cpp(6) : warning C4700: 使用了未初始化的局部变量“min”
1>h:\task\数组问题\源2.cpp(
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-12-20 07:49
* max=0,* min=1000;——严重错误!max和min还都没有指向,属于野指针,竟敢给它们的指向赋值!注意,指针变量与一般变量不同:一般变量一经声明,系统就为其分配了存储单元,可以尽管赋值;而指针变量声明后必须初始化,否则给它的指向赋值是危险操作。
全部回答
  • 1楼网友:上分大魔王
  • 2021-12-20 08:37
局部变量(local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在c++、c#、ruby这些面向对象语言中,一般只使用局部变量。面向对象编程是现在普遍采用的是软件开发方法,因此无需考虑是局部变量还是全局变量,说到变量,往往都是局部变量。 局部变量和全局变量: 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。 当全局变量与局部变量同名时: 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯