c#中一个未赋值的问题

staticvoidMain(string[]args){int[]p;for(;;){if(p[0]==2)break;p=newint[7];p[0]=2;Conso... static void Main(string[] args)
{
int[] p;
for (; ; )
{
if (p[0] == 2)
break;
p = new int[7];
p[0] = 2;
Console.WriteLine(p[0]);
Console.Read();
}
}

这是一个很简单的程序,但是编译的时候总是说我的 if (p[0] == 2)中的p[0]是“Use of unassigned local variable 'p'?”请问是怎么回事?谢谢!
展开
 我来答
百度网友6809e30a0
2009-03-20 · TA获得超过5285个赞
知道大有可为答主
回答量:3765
采纳率:0%
帮助的人:2815万
展开全部
int[] p还没有new的你就用啊,同学,数组要new了才能用,不然就空指针了,你的程序可以这样写:

static void Main(string[] args)
{
int[] p=new int[7];
for (; ; )
{
if (p[0] == 2)
break;
p[0] = 2;
Console.WriteLine(p[0]);
Console.Read();
}
}
这样可以修正你的错误,不过我总觉得你逻辑上没理清,你的程序是不是要这样写?
static void Main(string[] args)
{
int[] p=new int[7];
do
{
p[0]=int.Parse(Console.Read());
}while(p[0]==2);
Console.WriteLine(p[0]);
Console.Read();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凤青非g
2009-03-20 · TA获得超过242个赞
知道答主
回答量:95
采纳率:20%
帮助的人:49.9万
展开全部
int[] p 没有赋值
你可以按照楼上的赋值 int[] p = new int[10];
也可以直接赋值为null int[] p = null; 当然,这样的话程序运行时会报错的,但是编译是完全可以通过的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老猿小郭
2009-03-20 · TA获得超过2763个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:575万
展开全部
使用数组需要先初始化大小,
int[] p = bew int[10]
另外这样写循环不太好,如果要写一个无退出条件循环的话用While(true)吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2009-03-20 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4476万
展开全部
int[] p 需要初始化 元素个数,才能使用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友37ffe09e1
2009-03-20 · TA获得超过682个赞
知道小有建树答主
回答量:1119
采纳率:0%
帮助的人:709万
展开全部
static void Main(string[] args)
{
int[] p; //定义一个数组P
for (; ; ) //死循环
{
if (p[0] == 2) //p[0]没有实例化
break;
p = new int[7];
p[0] = 2;
Console.WriteLine(p[0]);
Console.Read();
}
}
我的理解,有不正确的望高人指正~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式