怎么和我预想的不一样
#include<stdio.h>int main()
{
int str,i,j;
int *p;
for(i=1;i<=9;i++)
{
str=getchar();
}
str=0;
p=&str;
for(i=1;i<=9;i++)
{
printf("%d ",*(p+i));
if(i%3==0)printf("\n");
}
return 0;
}
这是我的代码,我想将9个数按3*3的形式输出,但是输出的是一堆乱码,我觉得我的程序逻辑没有问题呀,str【0】=0,将p指向str的地址,打印*(p+i)的值,意思不就是打印p从1开始指向的值吗?但是结果是一堆乱七八糟的数字,有大佬求解吗? 本帖最后由 jackz007 于 2019-9-22 11:38 编辑
p=&str;
指针指向 str 的尾巴是什么意思?必须得指向开头啊!
str=0;
数组 str 第一个元素强行置 0 不知道几个意思,是不想要第一个键盘的输入?
#include<stdio.h>
int main(void)
{
int str , * p , i ;
for(i = 0 ; i < 9 ; i ++) str = getchar() - '0' ;
p = str ;
for(i = 0 ; i < 9 ; i ++) {
if(! (i % 3)) {
if(i) printf("\n") ;
printf("\t\t") ;
} else {
printf(" ") ;
}
printf("%d" , * (p + i)) ;
}
}
C:\Bin>x
123456789
1 2 3
4 5 6
7 8 9
C:\Bin>
页:
[1]