Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Имя массива– этоуказатель-константа,значением которого служит адрес нулевого элемента массива.

Читайте также:
  1. IP-адрес и доменная система имен
  2. Lt;variant>конкретное конечное состояние или желаемый результат, которого стремится добиться организация
  3. MS EXCEL бағдарламасында ұяшықтардың адресі.
  4. А) Суждение «Некоммерческие организации могут осуществлять предпринимательскую деятельность лишь постольку, поскольку это служит достижению целей, ради которых они созданы».
  5. Абсолютно твердым телом называют такое тело, расстояние между двумя соседними точками которого в процессе вращения остается неизменным.
  6. Автоматизация процесса назначения IP-адресов
  7. Адзінасць выяўлення сіметрычнага палінома праз элементарныя сіметрычныя паліномы.
  8. Адрес г.Москва,Ул. Ново-садовая, д.6
  9. Адрес электронной почты для отправки работ участников: ekokliio@yandex.ru
  10. Адреса IP

puts(s1); // Сегодня - понедельник

Пример 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=&pi;

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=___

}

  Адрес Содержимое
адрес указателяpppi 8F86:0100  
адрес указателяppi 8F86:0104  
адрес указателяpi 8F86:0108  
адрес переменнойi 8F86:010c  

Пример 7. Использование операций разыменования, инкремента, декремента и взятия адреса

#include <stdio.h>

void main()

{int a=1,b=2,c=5;

int *ptr=&b;

printf("&c=%p\n",&c); // &c=8ff0:0050

printf("&b=%p\n",&b); // &b=8ff0:0052 //ptr=&b

printf("&a=%p\n",&a); // &a=8ff0:0054

printf("*&b=%d\n",*&b); // *&b=__

printf("*&++b=%d\n",*&++b); // *&++b=__

printf("*ptr=%d\n",*ptr); // *ptr=__

printf("*ptr++=%d\n",*ptr++); // *ptr++=__

printf("*ptr=%d\n”,*ptr); // *ptr=__ (*)

printf("++*ptr=%d\n”,++*ptr); // ++*ptr=__

int m=10,n=20; // &n=8ff0:0060 &m=8ff0:0062

int *pm=&m;

printf("++*--pm=%d\n”,++*--pm); // ++*--pm=__

}


Указатели и константы

Указатель – константа – указатель, значение (хранящийся адрес) которого нельзя изменить. Но содержимое по адресу, который содержит такой указатель, изменять можно.

Пример 8.

int a=5;

int *const Сptr=&a; // неизменяемый указатель

int а1=*Сptr; // _________________________________________

*Сptr=10; // _________________________________________

Сptr=&a1; // _________________________________________

Указатель на константу – это такой указатель, при разыменовании которого нельзя изменить значение переменной, адрес которой хранится в указателе. Но содержимое указателя (хранящийся адрес) изменить можно, но при этом нельзя будет изменить значение новой переменной.

Пример 9.

const int b=2;

int const *ptrС=&b; // указатель на неизменяемое число (константу)

int b1=*ptrС; // _________________________________________

*ptrС=5; // _________________________________________

ptrС=&b1; // _________________________________________

Указатель-константа на константу – это указатель, в котором хранящийся адрес и содержимое по этому адресу изменить нельзя. В этом случае можно только посмотреть содержимое переменной, используя разыменование указателя.

Пример 10.

const int с=20;

int const*const СptrС=&с; // указатель-константа на константу

int с1=*СptrС; // _________________________________________

*СptrС=5; // _________________________________________

СptrС=&c1; // _________________________________________


Имя массива– этоуказатель-константа,значением которого служит адрес нулевого элемента массива.




Дата добавления: 2014-12-18; просмотров: 37 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Void main()| Продолжение 3 вопроса: Показатели продукции статистики промышленности

lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав