七哨 发表于 2015-9-15 16:21:29

不懂在哪里出错

#include <stdio.h>
main()
{
        int a;
        int *p=null;
int i=0;
int j=0;
p=a;
printf("\n请输入12个参数:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",p++);
}
}

jmuxiaolu 发表于 2015-9-15 17:41:06

大哥,p=a,是把a数值赋值给p.而p是指针类型。要么写p=a,要么写p=&a。另一方面,你数组都没初始化

qq小小七 发表于 2015-9-16 10:27:59

jmuxiaolu 发表于 2015-9-15 17:41
大哥,p=a,是把a数值赋值给p.而p是指针类型。要么写p=a,要么写p=&a。另一方面,你数组都没初始化

你说的是一维数组的情况,二维数组就是这样写的吧

qq小小七 发表于 2015-9-16 10:30:30

这个代码应该是用来给二维数组赋值的吧,逻辑没问题 但是细节 main()函数没返回值要写成void main()
给指针赋值为空应该用NULL
#include <stdio.h>
void main()
{
             int a ;
      int *p=NULL;
int i=0;
int j=0;
p=a;
printf("\n请输入12个参数:");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",p++);
}
}
for( i = 0 ; i < 3 ; i ++)
{
        for(j = 0 ; j < 4 ; j ++)
        {
                printf("a = %d " , a);
                printf("\n");
        }
}
}

仰望天上的光 发表于 2015-9-16 12:15:33

int *p=null;
改为int *p=NULL;

ianv 发表于 2015-9-20 10:01:45

p=a,是把a数值赋值给p。。。
页: [1]
查看完整版本: 不懂在哪里出错