#include <stdio.h>
int main()
{
int val;
printf("blah%p%nblah", &val, &val);
printf("val = %d\n", val);
return 0;
}
Эта демонстрационная программа компилируется на 32-битной машине. Я думаю, что val
должно быть 8. Но я получил это:
$ ./a.out
blah0xffa9b6fcblahval = 14
Почему 14? blah
- 4 символа. Указатель в IA32 должен быть 4 байта. %n
ничего не печатает.