(2)已知char a[10]={“abcdefghij”};int *p=NULL; int *q=NULL; 其中p=++a; q=a++; 请写出如下代码的打印结果。 printf(“a=%s\n”, a); printf(“p=%s\n”, p); printf(“q=%s\n”, q);
时间: 2024-04-28 07:20:44 浏览: 112
字符串处理函数.xlsx
根据题意,我们可以得到以下结果:
第一行输出:a=bcdefghij
第二行输出:p=bcdefghij
第三行输出:q=abcdefghi
解释:
- p=++a; 表示先将 a 数组的地址加 1,然后将其赋值给指针 p,所以此时 p 指向的是 a[1],而 a 数组中的第一个字符 a[0] 被跳过了。因此,p 指向的字符串是从 a[1] 开始的。
- q=a++; 表示先将 a 数组的地址赋值给指针 q,然后再将 a 数组的地址加 1,此时 a 指向的是 a[1],但是 q 还是指向 a[0],所以 q 指向的字符串是从 a[0] 开始的。
- 所以最后输出的结果就是上面所述的内容。
阅读全文