Ո՞րն է տարբերությունը int * p և * p միջև C- ում:


պատասխանել 1:

int * p- ը «p» անվանմամբ փոփոխականի հայտարարություն է, որում պահվում է «Հետաքրքրություն» տիպի մեկ այլ փոփոխականի հասցեն: Դա ցուցիչ է:

* p- ն նշում է փոփոխականի արժեքը, որի հասցեն պահվում է p- ում:

Օրինակ ՝

int * p // Հայտարարում է փոփոխական ՝ Integer տեսակի մեկ այլ փոփոխականի հասցեն պահելու համար:

int x = 8; // 8 արժեքը վերագրվել է «Տոկոս» տիպի փոփոխականին:

p =? // գտնվելու վայրը, որտեղ պահվում է x արժեքը, նշանակվում է p;

տպել (p); // x հասցե, որում պահվում է 8-ը:

տպել (* p); // այս հասցեում պահվող արժեքը, այսինքն. Հ 8

տպել (x); // Նույն ելքը, ինչպես վերևում:

Ինչ վերաբերում է int ** p- ին:

Պարզապես մտածեք:


պատասխանել 2:
  • Poinուցանիշը փոփոխական է, որի արժեքը մեկ այլ փոփոխականի հասցեն է, այսինքն. Հ. Տեղադրության ուղղակի հասցեն: Anyանկացած փոփոխականի կամ կայունի պես, դուք պետք է նշեք ցուցիչ, նախքան օգտագործեք այն փոփոխական հասցե պահելու համար: Terուցանիշի փոփոխական հայտարարագրի ընդհանուր ձևը հետևյալն է.
Type * var անվանումը; օրինակ.int * p

օրինակ.

int * ip; / * Pույց մատնանշեք ամբողջ թիվ * / կրկնակի * դ.Պ; / * Ցուցիչը կրկնակի * / float * fp; / * Pուցանիշի վրա լողացող * / char * ch / * սիմվոլի ցուցիչ * / /

Ստուգեք այս ծրագիրը.

# ներառել int main () int var = 20; / * փաստացի փոփոխական հայտարարություն * / int * ip; / * Ցուցիչի փոփոխական հայտարարություն * / ip = & var; / * Պահեք var- ի հասցեն ցուցիչի փոփոխականի մեջ * / printf ("var փոփոխականի հասցեն.% X \ n", & var); / * Ցուցիչի փոփոխականում պահվող հասցե / / printf ("IP- ի փոփոխականությամբ պահվող հասցեն.% X \ n", ip); / * Մուտք գործեք արժեքը ցուցիչով * / printf («* ip փոփոխականի արժեքը.% D \ n», * ip); վերադարձ 0; }

* p: * p- ը փոփոխականի ցուցիչ է, ինչպես ցույց է տրված ստորև: Այն նաև կոչվում է որպես մեկ ցուցիչ: Միակ ցուցիչը ծառայում է երկու նպատակի ՝ զանգվածի ստեղծում և գործառույթի բովանդակության փոփոխություն (փոխանցվել է որպես տեղեկանք):

Շատ շնորհակալություն .. :)


պատասխանել 3:

Ես մտածում եմ C- ում երկու տարբեր հայտարարությունների մասին, այսինքն ...

int * p;

և

* փ;

Առաջին ցուցումը, այսինքն. H. Int * p; p- անվանմամբ ցուցիչի փոփոխականի հայտարարությունն է: C լեզվով, այս հայտարարությունը, ընդհանուր առմամբ, նախորդում է կատարման բոլոր մյուս հայտարարագրերին: Պարզապես այս հայտարարությունը C լեզվով նշելը ստեղծում է ցուցիչ p, որը չի վերաբերում որևէ բանի:

Օրինակ, հաշվի առեք «var» անունով փոփոխական, որը ես հայտարարեցի, նախքան այս սլաքը հայտարարելը: Այնուհետև կարող եմ var- ի հասցեն ցուցադրել ցուցիչ p- ին հետևյալ կերպ.

int var = 43; int * p =?

The & var- ն վերադարձնում է var փոփոխականի հասցեն (գտնվելու վայրը): Այս հասցեն նշանակվում է ցուցիչի փոփոխական p.

Հիմա հաջորդ հայտարարությանը: Եթե ​​հետագայում մենք նշում ենք ծրագրի ցանկացած վայր, * p նշանակում է, որ մենք նկատի ունենք var փոփոխականի արժեքը:

Այսինքն, եթե դուք գրեք հայտարարությունները հետևյալ կերպ.

printf ("% d", p);

դուրս է բերում var փոփոխականի «հասցեն»: Եվ հայտարարությունները, ինչպիսիք են.

printf ("% d", * p);

Վերադարձնում է var փոփոխականում պահված արժեքը:

Այժմ դուք պետք է իմանաք, թե ինչպես փոխել var փոփոխականի արժեքը `պարզապես օգտագործելով = օպերատորը.

var = 33;

Դուք կարող եք ճիշտ նույնը անել ցուցիչի փոփոխականի հետ.

* p = 33; // Հաստատում և փոփոխում է var փոփոխականության մեջ պահվող p = 33 արժեքը; // Անվավեր հայտարարություն, քանի որ p- ն ներկայումս վերաբերում է var- ի հասցեին և ոչ թե var- ի արժեքին:

Վերը նշված բացատրությունում ենթադրվում էր, որ դուք գիտեք, թե որ ցուցիչի փոփոխականներն առկա են C լեզվով: