C语言...关于指针变量的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:33:42
有个程序是这样的
int *p,i=1;
while(i<=5){scanf("%d",p++);i++}
这个小程序是为了输入5个数,分别存放在P后面的内存单元中,但是我刚才看见书上写,P是指针变量,我没有定义他指向任何变量地址,请问我这样做是不是错了??

如果该成 int *p,i=1,n;
p=&n; while(i<=5){scanf("%d",p++);i++}
这个和上面的比就多了一个P=&n, 我想为了使p指向一个单元地址,我就胡乱加一个变量,然后让p先指向他,而这个变量n我都没使用的,我就是想让p一开始指向他,因为书上说定义p后,不指向任何地址就赋值是错的,
那么请问我第2个程序这样做,是否可行?
顺便在补充一个问题
请看下面这句用人的语言描述的话,怎么用C语言表示
"一直输入数,直到出现空格后,就停止"
其实我是不知道"空格"在程序中怎么表示,不等于空格有什么方法表示??

错的,你反指向的只是一个内存地址,你再做自加操作根本不知道会加到哪里去。
应该指向一个数组的首地址,数组中的开辟的是连续的内存空间,你才可以做自加
while(ch != ' ') //ch 是一个字符
{

}

该成 int *p,i=1,n[5];
p=n; while(i<=5){scanf("%d",p++);i++}