How exactly pointer subtraction works in case of integer array?
问题 #include<stdio.h> int main() { int arr[] = {10, 20, 30, 40, 50, 60}; int *ptr1 = arr; int *ptr2 = arr + 5; printf("Number of elements between two pointer are: %d.", (ptr2 - ptr1)); printf("Number of bytes between two pointers are: %d", (char*)ptr2 - (char*) ptr1); return 0; } For the first printf() statement the output will be 5 according to Pointer subtraction confusion What about the second printf() statement, what will be the output? 回答1: To quote C11 , chapter §6.5.6, Additive operators