#include "stdio.h"
void main()
{
char s[5];
int *p=(int *)&s[0],i;
for(i=0;i<5;i++)
scanf("%c",&s[i]);
printf("%d %c\n",p,*p);
p++;
printf("%d %c\n",p,*p);
}
题目的条件是怎样的?不明白 为什么 要这样写
请指教
(int *)&s[0]; 就是把&s[0]的字符型格式化成一个int(整形)
可写成(int *)s
输入s[0]=a时,指针P的内容为 97
则以整形输出为 97 字符型输出为 a
s[1]=b时,
98
98
b
.
.
.
p++
首地址向下 跳一位 则s[1]
我把程序 改了下
#include "stdio.h"
void main()
{
char s[5],*p=s;
int i;
for(i=0;i<5;i++)
scanf("%c",&s[i]);
clrscr();
printf("%d\t%c\n",*p,*p);
p=p+1;
printf("%d\t%c\n",*p,*p);
}