Која је разлика између инт * а; и инт ** а; у Ц?


Одговор 1:

Претпоставимо да узмемо

инт и;

инт * а;

инт ** б;

Сада је показивач који чува адресу и, зове се показивач јер указује на адресу која је једне врсте….

инт * а може да похрани адресу и јер је то цела варијабла.

Сада погледајте инт ** б, то је показивач на показивач, а на њега можете гледати као инт * (* б) значи да је показивач који ће указивати на други показивач целог броја ...

Средство б ће чувати адресу а.

Тако можемо доделити вредности три променљиве као:

и = 5;

а = & и;

б = & а;

Важно:

ако штампате и: 5 (вредност) биће штампано.

ако исписујете: биће исписана адреса и.

ако штампате * а: 5 (вредност) биће штампано.

ако штампате б: Адреса штампаног листа биће штампана

ако штампате * б: биће исписана адреса и

ако штампате ** б: 5 (вредност) биће штампано.


Одговор 2:

Здраво, погледајте дијаграм и шифру испод, добићете свој одговор. У ствари, концепти поинтер-поинтер (двоструки поинтер)

Адреса променљиве броја има: 1000

Адреса показивача птр1 је: 2000

Адреса показивача птр2 је: 3000

// ————————- код—————— //

#инцлуде <стдио.х>

инт маин ()

{

инт нум = 10;

инт * птр1;

инт ** птр2;

птр1 = & нум;

птр2 = & птр1;

принтф ("Вредност броја =% д \ н", број);

принтф ("Вриједност доступна на * птр1 =% д \ н", * птр1);

принтф ("Вриједност доступна на ** птр2 =% д \ н", ** птр2);

}

Излаз:

Вредност нум = 10

Вриједност доступна на * птр1 = 10

Вриједност доступна на ** птр2 = 10