강사가 다음 기능을 제공합니다.C & 포인터 추가 문자 배열
char *p8_1 = (char*) malloc(sizeof(char)*11);
char *p8_2 = (char*) malloc(sizeof(char)*11);
char *p8_3 = (char*) malloc(sizeof(char)*11);
p8_1[9] = 'u';
p8_2[2] = p8_1[9];
p8_2[10] = p8_1[9];
p8_3[3] = p8_2[10];
step_step_step(p8_1, p8_2, p8_3);
을 그리고 그것은 인쇄 오류를 유지 : 그래서 나는 이런 식으로 함수를 호출하려고 롤 모호성에 대한
void step_step_step(char *first, char *second, char *third)
{
if (third[3] == second[2] + 8 && second[2] == first[1] + 8)
printf("8: Illinois\n");
else
printf("8: ERROR\n");
}
나를 비난하지 않는다. 여기서 내가 뭘 잘못하고 있니? 나는 내 다른 솔루션 그렇게되면 문제가 해결되지 않는 이유를 이해하지 않습니다
p8_2[2] = p8_1[1] + 8;
p8_3[3] = p8_2[2] + 8;
step_step_step(p8_1, p8_2, p8_3);
이의 우선 순위를 확인'+'와'&&' – verbose
귀하의'+'연산자는 문자가 아닌 포인터를 추가, 그래서 거기에있다 여기에 "포인터 추가"가 없습니다. 대신에 'u'와 'u'+ 8 '을 비교하고 비 동일하게 얻는 것 (놀랍지 않게) –