C语言简单文件

来源:百度知道 编辑:UC知道 时间:2024/06/12 15:31:44
#include"stdio.h"
main()
{
int x,a[10],y;
int *pa;
a[0]=pa;

for(y=1;y<=9;y++)
{
scanf("%d",pa);
x=pa;

printf("%d",x);
}
}

根据你的意思,在源程序的基础上稍加改动,程序在tc2.0下调试通过。

#include"stdio.h"
#include"stdlib.h"
main()
{
int x,a[10],y;
int *pa;
pa=a; /*也可写为 pa=&a[0],因为pa是指针它本身的值是地址*/
for(y=0;y<=9;y++) /*a表示的是数组a[10]的起始地址,它是一个常量,也是地址*/
{
printf("\nPlease a number:\n");
scanf("%d",pa);
x=*pa;/*这里不是x=pa;而是把地址pa指向的数值给x,而不是把地址给x*/
printf("%d",x);
pa++;/*指针可以作为变量进行数学运算,pa的值增加而指向数组a[10]中的下一元素*/
}
}

比如pa=2000h,[2000h]=23,即*pa=23.pa本身的值是2000h,而内存地址为2000h的一个字节里存放的无符号整数是23,那么就表示*pa=23.

a[0]=pa;//语句错误,指针型变量无法赋给整形变量
scanf("%d",pa); //PA是指针,
看来您对指针的概念还不明白
错误太多,建议多看看指针