Cad é an difríocht idir int * a; agus int ** a; i c?


freagra 1:

Cuir i gcás go dtógfaimid

int i;

int * a;

int ** b;

Anois is pointeoir é a stórálann seoladh i. Tugtar pointeoir air toisc go ndíríonn sé ar sheoladh de chineál.

is féidir le int * a seoladh i a stóráil toisc gur athróg slánuimhir é.

Anois féach ar int ** b, is pointeoir le pointeoir é ar féidir leat féachaint air mar int * (* b).

Stórálann an gléas b seoladh a.

Is féidir linn na luachanna seo a leanas a shannadh do thrí athróg:

i = 5;

a =?

b = & a;

Tábhachtach:

Nuair a phriontálann tú, priontáiltear i: 5 (luach).

Má phriontálann tú ceann: tá seoladh i priontáilte.

Má phriontálann tú *, priontáiltear a: 5 (luach).

más mian leat a phriontáil b: tá seoladh a phriontáilte

Má phriontálann tú * b, priontáiltear seoladh i

Má phriontálann tú ** b: priontáiltear 5 (luach).


freagra 2:

Dia duit, féach an léaráid agus an cód thíos, gheobhaidh tú do fhreagra. Is coincheap pointeoir-go-pointeoir é i ndáiríre (coincheap pointeoir dúbailte)

Is é seoladh an athróg num: 1000

Is é seoladh an pointeora ptr1: 2000

Is é seoladh an pointeoir ptr2: 3000

// —————————————— //

#include

int main ()

{

int num = 10;

int * ptr1;

int ** ptr2;

ptr1 =?

ptr2 =?

printf ("luach num =% d \ n", num);

printf ("Luach ar fáil ag * ptr1 =% d \ n", * ptr1);

printf ("Luach ar fáil ag ** ptr2 =% d \ n", ** ptr2);

}

Eagrán:

Luach num = 10

Luach ar fáil ag * ptr1 = 10

Luach ar fáil ag ** ptr2 = 10