我遇到了相互减少指针的问题。
char a[] = "abcdefghijkl";
a2 = 'g';
a3 = "jkl";
*a4, *a5;
a4 = strchr(a,a2);
a5 = strstr(a,a3);
printf("%s\n", a+6);
printf("%c\n", *a);
printf("%c\n", *(++a4));
printf("%c\n", ++(*a4));
printf("%ld\n", a5-a4);
printf("%s\n", &a[2]);
5。和6.对我来说是个问题。 a4的最后一种形式指向'i',a5指向'j'。在这种情况下,我认为我应该因a5-a4而取1。 最后一个对我来说也很复杂。我只需要它是'c'。
答案 0 :(得分:1)
++(*a4)
更改a4
指向的字符。它不会改变a4
。 a4
之前a5
仍然指向两个字符。
答案 1 :(得分:0)
此代码: printf(“%s \ n”,& a [2]);
将打印,直到遇到null终止符,它在[]初始化时结束。在[2]的char之后它不会停止。您需要一个不同的格式说明符,或者您需要在'2'之后插入一个空终止符。