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

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

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

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

Ответ
 
Опции темы
Старый 06.12.2010, 20: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 в 18:47.
saammy вне форума Ответить с цитированием
Старый 24.10.2015, 18:23   #2
MaZaHaKeR69
Новичок
Джуниор
 
Регистрация: 24.10.2015
Сообщений: 1
По умолчанию

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

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


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