Я протестировал небольшую программу, которая написана ниже. Мой вопрос в том, почему существует разница в 12 байт между указателем на значение и указателем на первый указатель. Но если вы посмотрите на другие адреса указателя есть только разница в 8 байт каждый time.I выполняется эта программа несколько раз, и всегда я вижу это difference.Can кто-нибудь объяснить мне, что может быть причиной заранее спасибо ..Изменение значений адреса указателя
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int val;
int *ptr;
int **ptrptr;
int ***ptrptrptr;
int ****ptrptrptrptr;
int *****ptrptrptrptrptr;
val=10;
ptr=&val;
ptrptr=&ptr;
ptrptrptr=&ptrptr;
ptrptrptrptr=&ptrptrptr;
ptrptrptrptrptr=&ptrptrptrptr;
printf("Value-%d\n",val);
printf("Value address - %d\n",ptr);
printf("Pointer address - %d\n",ptrptr);
printf("Pointer Pointer Address -%d\n",ptrptrptr);
printf("Pointer Pointer Pointer Address -%d\n",ptrptrptrptr);
printf("Pointer Pointer Pointer Pointer Address -%d\n",ptrptrptrptrptr);
return 0;
}
результаты:
Value-10
Value address - -1308521884
Pointer address - -1308521896
Pointer Pointer Address --1308521904
Pointer Pointer Pointer Address --1308521912
Pointer Pointer Pointer Pointer Address --1308521920
Какой компилятор, какой компоновщик, какой процессор? 32 или 64-бит? Что такое int - насколько оно велико? Это действительно имеет значение? Я имею в виду, как вы вообще заметили? –
Интересно, что смена первого int на работу длится так, как вы ожидаете. – strkol
Я работаю хорошо надолго ... :) – Teja