|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Void main()
Void main() {int a=10; printf("a=%d &a=%p \n",a,&a); int *ptra=&a; // указатель проиниц. адресом переменной типа а printf("ptra=%p &ptra=%p\n",ptra,&ptra); int *ptrb=ptra; // указатель проиниц. значением указателя ptra printf("ptrb=%p &ptrb=%p\n", ptrb,&ptrb);} int*ptrc=(int*)0xB8000000;// указатель проиниц. явным адресом printf("ptrc=%p &ptrc=%p",ptrc,&ptrc); } Результат: a=___ &a=_________________ ptra=___________ &ptra=___________ ptrb=___________ &ptrb=___________ ptrc=___________ &ptrc=___________ Расположение в памяти переменных представлено на рис.
Пример 2. Использование операции разыменования указателей #include <iostream.h> Void main() {float f=1.3; float *pf=&f; cout<<"pf="<<pf<<" *pf="<<*pf<<endl; *pf=2.7; cout<<" f="<<f<<endl; int a=5; int *pa=&a; cout<<"pa="<<pa<<”*pa=”<<*pa<<endl; } Результат: pf=0xF9B0 0FFC *pf=_____ f=_____ pa=0xF9B0 0FFA *pa=______ Пример 3. Использование вычитания указателей типа int #include <stdio.h> Void main() {int a=1,b=7,c; int*pa=&a, *pb=&b, *pc=&c; printf("pa=%p pb=%p pc=%p\n",pa,pb,pc); printf("pa-pb=%d\n",pa-pb); printf("pa-pc=%d\n",pa-pc); } Результат: pa=8B04:FFFE pb=8B04:FFFC bc=8B04:FFFA pa-pb=__ pa-pc=__ Пример 4. Использование вычитания указателей типа long #include <stdio.h> Void main() {long al=2L,bl=7L,cl; long *pal=&al,*pbl=&bl,*pcl=&cl; printf("pa1=%p pb1=%p pc1=%p\n",pa1,pb1,pc1); printf("pal-pbl=%d",pal-pbl); printf("pal-pcl=%d\n",pal-pcl); } Результат: pal=8B11 FFE8 pbl=8B11 FFE4 pcl=8B11 FFE0 pal-pbl=__ pal-pcl=__ Пример 5. Использование сложения и вычитания целых чисел #include <stdio.h> Void main() {int a=10,b=20,c=30; int *pa=&a,*pb=&b,*pc=&c; printf("pa=%p pb=%p pc=%p\n",pa,pb,pc); printf("%p %d %d\n",pa-1,*(pa-1),*pa–1); printf("%p %d %d\n",pс+2,*(pс+2),*pс+2); pb=pb+1; printf("%p %d %d\n",pb,*pb,*(pb-2)); } Результат: pa=8B04 FFFE pb=8B04 FFFC pc=8B04 FFFA _______ ___ __ _______ ___ __ _______ ___ __ Пример 6. Использование операции многократного разыменования указателя #include <iostream.h> void main() {int i=5; int *pi=&i; int **ppi=π int ***pppi=&ppi; cout<<" &i="<<&i<<endl; // &i=0x8f86 010с cout<<" &pi="<<&pi<<endl; // &pi=0x8f86 0108 cout<<" &ppi="<<&ppi<<endl; // &ppi=0x8f86 0104 cout<<" &pppi="<<&pppi<<endl;// &pppi=0x8f86 0100 cout<<" pppi="<<pppi<<endl; // pppi=_____________ cout<<" *pppi="<<pppi<<endl; // *pppi=____________ cout<<" **pppi="<<pppi<<endl; // **pppi=____________ cout<<"***pppi="<<pppi<<endl; // ***pppi=___ }
Пример 7. Использование операций разыменования, инкремента, декремента и взятия адреса #include <stdio.h> Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |