Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 06.12.2010, 19:46   #1
saammy
 
Регистрация: 29.11.2010
Сообщений: 7
По умолчанию “Иследование работы с указателями ”

ПЛОХО РАБОТАЕТ , ПОДСКАЖИТЕ ПОЖАЛ. ГДЕ ОШИБКА ?*

Задание:

1. Разработать Си - программу содержащую 6 переменных одного типа
и 2 указателя на любые эти переменные.

2. Вывести на екран:
Размер (количество байтов) выделенных под переменные и указатели
Значения переменных
Значения указателей
Адреса в ОП всех переменных
Адреса в ОП всех указателей
Результат вычитания указателей

3. Над указателями провести операции

Сложение указателей с целым числом
Вычитание из указателя целого числа
Декремента
Инкремента
Операции отношения: ==, <= ,< ,> ,>= ,!=
Результаты операций вывести на экран


4.Создать указатель на указатель и вывести на экран

Адрес в ОП этого указателя
Значение этого указателя


4. Создать неопределенный указатель и использовать его для указания
на любую из ранее обьявленных переменных.Вывести на экран значение этого указателя

Код:
#include <stdio.h>
#include <conio.h>

void main(){
float q=5.32,w=4.2,e=1.78,r=8.45,t=6.34,y=3.78,*p,*p1,*p2,*p3,*p4,*p5;
clrscr();
p=&q;
p1=&w;
p2=&e;
p3=&r;
p4=&t;
p5=&y;
printf("%p; %p",&q,&w);
printf(" - zad 1\n\n");

printf("%d  ",sizeof(q));
printf("%d  ",sizeof(w));
printf("%d  ",sizeof(e));
printf("%d  ",sizeof(r));
printf("%d  ",sizeof(t));
printf("%d - zad 2 (razmer peremennuh)\n\n",sizeof(y));

printf("%d  ",sizeof(*p));
printf("%d  ",sizeof(*p1));
printf("%d  ",sizeof(*p2));
printf("%d  ",sizeof(*p3));
printf("%d  ",sizeof(*p4));
printf("%d - zad 2 (razmer ukazatelei)\n\n",sizeof(*p5));

printf("q=%4.3f ",q);
printf("w=%4.3f ",w);
printf("e=%4.3f ",e);
printf("r=%4.3f ",r);
printf("t=%4.3f ",t);
printf("y=%4.3f - zad 2 (znachenie peremennuh)\n\n",y);

printf("%p  ",&q);
printf("%p  ",&w);
printf("%p  ",&e);
printf("%p  ",&r);
printf("%p  ",&t);
printf("%p  - zad 2 (znachenie ukazatelei)\n\n",&y);

printf("%p6 ",&p);
printf("%p7 ",&p1);
printf("%p8 ",&p2);
printf("%p9 ",&p3);
printf("%p10 ",&p4);
printf("%p11 - zad 2 (adresa v OP)\n\n",&p5);

printf("%p6 ",q);
printf("%p7 ",w);
printf("%p8 ",e);
printf("%p9 ",r);
printf("%p10 ",t);
printf("%p11 - zad 2 (peremennue v OP)\n\n",y);

double wq=p1-p;
printf("%f - zad 2 (vuchitaniya ukazateley)\n",wq);
double rw=p3-p1;
printf("%f\n\n",rw);

p1=p1+4;
p2=p2-4;

printf("%p1 - zad 3 (slozgenie i vuchitaniya s chislom)\n",*p1);
printf("%p2\n\n",*p2);

*(p3)++;
*(p4)--;
*++(p);
*--(p5);

printf("%p3 ",p3);
printf("%p4 ",p4);
printf("%p ",p);
printf("%p5 - zad 3 (inkrementa, dekrementa)\n\n",p5);

double a=p==p1;
double s=p1<=p3;
double d=p2>=p4;
double f=p<p1;
double g=p3>p1;
double h=p4!=p2;

printf("a=%f - zad 3 (operacii otnoweniya)\n",a);
printf("s=%f\n",s);
printf("d=%f\n",d);
printf("f=%f\n",f);
printf("g=%f\n",g);
printf("h=%f\n\n",h);

float **p6=&p;
printf("%p - zad 4 (ukazatel na ukazatel)\n",&q);
printf("%p6\n",&p);
a=**p6;
printf("a=%f\n\n",a);

void *p7;
p7=&r;
printf("%p7 - zad 5",p7);
getch();
}

Последний раз редактировалось Stilet; 24.10.2015 в 17:47.
saammy вне форума Ответить с цитированием
Старый 24.10.2015, 17:23   #2
MaZaHaKeR69
Новичок
Джуниор
 
Регистрация: 24.10.2015
Сообщений: 1
По умолчанию

При проверке твоих я нашёл что идентификатор clrscr не определен.
Дело в том что такой функции в conio.h нет!
Для ёё решение перед clrscr(); поставь void
MaZaHaKeR69 вне форума Ответить с цитированием
Старый 24.10.2015, 17:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
ПЛОХО РАБОТАЕТ
"Плохо" это как?
Цитата:
Для ёё решение перед clrscr(); поставь void
Вот это поворот... О_о
А я почему-то всегда думал, что в Борланд (турбо) Си это функция очистки экрана, которая в современности может быть заменена на system("cls")
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каков принцип работы с указателями??? Tanusha_221 Помощь студентам 0 28.05.2010 15:12
Иследование функции _neer_ Помощь студентам 2 16.12.2009 17:13
Построение и иследование графа Сашf Общие вопросы Delphi 1 17.05.2009 16:35
работы с указателями и массивами... Катюшенька Помощь студентам 21 24.01.2009 12:17
Работа с указателями Mango Помощь студентам 2 23.11.2008 10:33


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840