Je, unaweza kuchapisha pointer?
Je, unaweza kuchapisha pointer?

Video: Je, unaweza kuchapisha pointer?

Video: Je, unaweza kuchapisha pointer?
Video: ЧТО ДУМАЮ О ВАС ЛЮДИ, ВАШЕ ОКРУЖЕНИЕ. КАКАЯ ВЫ СЕЙЧАС? 2024, Novemba
Anonim

Viashiria vya uchapishaji . Unaweza kuchapisha pointer thamani kwa kutumia printf na kibainishi cha umbizo %p. Kufanya hivyo, wewe inapaswa kubadilisha pointer kwa chapa void * kwanza kwa kutumia cast (tazama hapa chini kwa utupu * viashiria ), ingawa kwenye mashine ambazo hazina uwakilishi tofauti wa tofauti pointer aina, hii inaweza kuwa sio lazima.

Swali pia ni, ninawezaje kuchapisha anwani yangu ya printf?

Kwa chapa kumbukumbu anwani , sisi kutumia '%p' kibainishi cha umbizo katika C. Kwa chapa ya anwani ya a kutofautiana, sisi kutumia kibainishi cha "%p". katika C lugha ya programu. Kuna njia mbili za kupata anwani ya kutofautiana: Kwa kutumia " anwani ya" (&) mwendeshaji.

Zaidi ya hayo, nini kinatokea unapoongeza kwenye pointer? A pointer kujumlisha kunamaanisha kupita kwa kipengele fulani kinachofuata. Kwa hivyo anwani inaongezwa na saizi ya kipengee kilichoelekezwa. Anwani ya pointer itaongezwa kwa sizeof(T) ambapo T ndio aina iliyoelekezwa. Kwa hivyo kwa int, the pointer itaongezwa kwa sizeof(int).

Vivyo hivyo, watu huuliza, ninapataje thamani ya pointer?

1 Jibu. Kwa pata ya thamani ya a pointer , acha tu kurejelea pointer . int *ptr; int thamani ; *ptr = 9; thamani = *ptr; thamani sasa ni 9.

Je, nambari kamili inaweza kuongezwa kwenye kielekezi?

Kielekezi hesabu na safu. Ongeza na nambari kamili kwa a pointer au kupunguza nambari kamili kutoka kwa a pointer . Athari ya p+n ambapo p ni a pointer na n ni nambari kamili ni kukokotoa anwani sawa na p plus n mara saizi ya chochote p inayoelekeza (ndio maana int * viashiria na char* viashiria hazifanani).

Ilipendekeza: