main() //*&i其实与*P其实是同样结果,同时某些情况也就等于i.
{ //&i=p,*P=i,*P表示&i所表示的数值
long i;
long *p;
printf("please input the number:\n");
scanf("%ld",&i);
p=&i;
printf("the result1 is:%ld\n",*&i);
printf("the result2 is:%ld\n",i);
printf("the result3 is:%ld\n",*p);
}
int i;int *P;p=&i,此时P前不要写*.或者int i;int *P=&i,同时定义和赋值要写*.*&优先级一样,从右像做.其实*P就是&上的那个数的内存位置吧
//P指针位移1位,就等于&i地址位移一位,就是int i 的一个单位,4个字节.p++后面的比前面的大4个字节
void pc()
{
int i;
int *p;
printf("please input the number:\n");
scanf("%d",&i);
p=&i;
printf("the result1 is:%d\n",p);
p++;
printf("the result2 is:%d\n",p);
return ;
}
//下面是二维数组简单点的如何输出二维排列方式,但是思维还是有点绕,不够清晰直接
int main()
{
int a[3][5],i,j;
printf("please input:\n");
for (i=0; i<3; i++)
{
for (j=0; j<5; j++)
{
scanf("%d",a[i]+j);
}
}
printf("the result is:\n");
for (i=0; i<3; i++)
{
for (j=0; j<5;j++)
{
printf("%3d",*(a[i]+j));
}
printf("\n");
}
return 0;
}
char (*p)代表定义一个*P类型是char型, .....= (char *)p表示强势转换成字符型指针.字符型数组后面会默认多个\0会自动帮你太添加,而整形数组则需要"包含\0",才能相当于字符型数组,今天这章内容有点多,所以慢慢理解,至于作业暂时没有做,还在熟悉与理解