(编程)关于tc环境中的一个指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:20:46
#include <stdio.h>

void main()
{
int i,j,t;
int a,b,c,d,e;
int *p[5] = {&a &b &c &d &e};

scanf("%d,%d,%d,%d,%d",p[0],p[1],p[2],p[3],p[4]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(*p[i]>*p[j])
{
t=*p[i];
*p[i]=*p[j];
*p[j]=t;

}
for(i=0;i<5;i++)
printf("%d",*p[i]);

system("pause");
}

请问对指针*p[5]的定义有问题吗?为什么系统提示illegal initialization in function main?
tanyuguo - 榜眼 十二级 8
按你的程序运行也会出现警告
赋值改成逗号了还是不行呀。。。
但还是谢谢大家!

改成逗号应该就行了,以下程序在我机子上运行OK。
当然,要注意输入时数据间也要加逗号

#include "stdio.h"
void main()
{
int i,j,t;
int a,b,c,d,e;
int *p[5] = {&a, &b, &c, &d ,&e};

scanf("%d,%d,%d,%d,%d",p[0],p[1],p[2],p[3],p[4]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(*p[i]>*p[j])
{
t=*p[i];
*p[i]=*p[j];
*p[j]=t;

}
for(i=0;i<5;i++)
printf("%d",*p[i]);

}

只能这样
int *p[5];
p[0]=&a;
p[1]=&b;
p[2]=&c;
p[3]=&d;
p[4]=&e;

定义没问题,赋值有问题,初学的吧,我也是初学的。看着,要这样用{}

int *p[5] = {&a &b &c &d &e};
改成
int *p[5] = {&a,&b,&c,&d,&e};

中间不要用空格,用逗号。

scanf("%d,%d,%d,%d,%d",p[0],p[1],p[2],p[3],p[4]);
指针是没有内存的~你给他赋值当然警告你

支持学习者