指针和二维数组课后作业,萌新求教
#include <stdio.h>int main()
{
char matrix = {
'I', 'l', 'o', 'v', 'e',
'F', 'i', 's', 'h', 'C',
'.', 'c', 'o', 'm', '!'
};
char *p;
p = &matrix;
printf("%c", *p);
printf("%c", *p++);
printf("%c", *++p);
printf("\n");
return 0;
}
为何打印结果是vvF,而不是vve 再加上一行是不是就能理解了?
sh-5.1$ cat main.c
#include <stdio.h>
int main()
{
char matrix = {
'I', 'l', 'o', 'v', 'e',
'F', 'i', 's', 'h', 'C',
'.', 'c', 'o', 'm', '!'
};
char *p;
p = &matrix;
printf("%c", *p);
printf("%c", *p++);
printf("%c", *p);
printf("%c", *++p);
printf("\n");
return 0;
}
sh-5.1$ ./main
vveF
sh-5.1$
本帖最后由 jackz007 于 2022-11-25 21:37 编辑
printf("%c", *p) ; p = & matrix 打印 'v'
printf("%c", *p++) ; // 先取值,再增值指针 p = & matrix 打印 'v',完成取值后,p = & matrix
printf("%c", *++p) ; // 先增值指针 ,再取值,p = & matrix,打印 'F'
页:
[1]