powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите разобраться с указателями!!!
6 сообщений из 6, страница 1 из 1
Помогите разобраться с указателями!!!
    #33497262
Заочник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нард! Помогите! Протупил! Мне надо сегодня отослать контрольную, а я думал на след. неделе! Я все сделал, только не могу разобраться с указателями!
Помогите хоть что-то сделать!!

2.1. Каким образом инициализируются по умолчанию внешние и статические массивы? Инициализируются ли по умолчанию автоматические массивы? Каким образом можно присваивать значения элементам массива, относящегося к любому классу памяти?


2.2. Пусть задан массив int arr[10]; что тогда означают выражения:
arr[0] *arr *arr + 2
arr[2] *(arr + 2) arr
&arr[2] arr+2

2.3. Правильно ли написано увеличение величины, на которую указывает указатель a, на единицу?
*a++;

2.4. Дан фрагмент текста:
char a[] = "xyz";
char *b = a + 1;
Чему равны
b[-1] b[2] "abcd"[3]
Можно ли написать a++ ? То же про b++ ? Можно ли написать b=a ? a=b ?

2.5. Перепишите указанную программу с применением указателей.
int arr [] = {1, 7, 4, 45, 31, 20, 57, 11};
main () {
int i; long sum;
for ( i = 0, sum = 0L;
i < (sizeof(arr)/sizeof(int)); i++ )
sum += arr ;
printf ("Среднее значение = %ld\n", sum/8)
}

2.6.
Что напечатается в результате работы программы?
char arr[] = {'С', 'Л', 'А', 'В', 'А'};
main () {
char *pt; int i;
pt = arr + sizeof(arr) - 1;
for( i = 0; i < 5; i++, pt-- )
printf("%c %c\n", arr , *pt);
}
Почему массив arr[] описан вне функции main()? Как внести его в функцию main() ?

2.7.
Для имеющегося массива
static int mas[30][100];
a. выразите адрес mas[22][56] иначе
b. выразите адрес mas[22][0] двумя способами
c. выразите адрес mas[0][0] тремя способами

2.8. Составьте программу инициализации двумерного массива a[10][10], выборки элементов с a[5][5] до a[9][9] и их распечатки. Используйте доступ к элементам по указателю.

2.9. Составьте функцию вычисления скалярного произведения двух векторов. Длина векторов задается в качестве одного из аргументов.

2.10. Составьте функцию умножения двумерных матриц a[][] * b[][].

2.11. Составьте функцию умножения трехмерных матриц a[][][] * b[][][].

2.17. Массив s моделирует двумерный массив char s[H][W]; Перепишите пример при помощи указателей, избавьтесь от операции умножения. Прямоугольник (x0,y0,width,height) лежит целиком внутри (0,0,W,H).
char s[W*H]; int x,y; int x0,y0,width,height;
for(x=0; x < W*H; x++) s[x] = '.';
...
for(y=y0; y < y0+height; y++)
for(x=x0; x < x0+width; x++)
s[x + W*y] = '*';

2.18. Что означают описания?
int i;
int *pi;
int *api[3];
int (*pai)[3];

int fi();
int *fpi();
int (*pfi)();
int *(*pfpi)();
int (*pfpfi())();

int (*fai())[3];


int (*apfi[3])();
...
Рейтинг: 0 / 0
Помогите разобраться с указателями!!!
    #33497408
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему это все хорошо описано в книжках
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите разобраться с указателями!!!
    #33497439
Гадёныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в книжках читать надо...

первое разберись что в масиве есть указатель(указывает на переменную, сам является адресом) а что переменная, как к ним обращатся...

смотри разименовывание указателя *с
...
Рейтинг: 0 / 0
Помогите разобраться с указателями!!!
    #33497563
Заочник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нифига не понимаю в книжках(((
Во всем разобрался, а указатели - хоть убей!!!!
Ну подскажите хоть
2.3. Правильно ли написано увеличение величины, на которую указывает указатель a, на единицу?
*a++;
...
Рейтинг: 0 / 0
Помогите разобраться с указателями!!!
    #33498076
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор*a++;

Результатом будет значение расположенное по текущему адресу указателя, а сам указатель затем будет указывать на следующий элемент
...
Рейтинг: 0 / 0
Помогите разобраться с указателями!!!
    #33498291
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все абсолютно верно (имеется в виду Funikov).

#include <conio.h>
#include <stdio.h>
void main (void)
{
int *a,b,c; //объявили, что a-указатель на целое число; b и c –целые числа
//какой конкретно адрес находится в a решает транслятор
//нам его знать совсем не обязательно
*a=13; // в ячейку памяти, адрес которой находится в a, записываем число 13
b=*a; // b равно содержимому ячейки, адрес которой содержится в a
*a=*a+1; // увеличиваем содержимое ячейки, на которую указывает a, на единицу
c=*a; //c равно этому новому увеличенному значению
printf("%d %d\n\n",b,c);//распечатываем до и после
}
Можно и естественно спросить зачем нужны такие навороты, в смысле указатели. Ответ: они просто создают удобства при работе с массивами и в других случаях.

int i; // i объявлено целым числом
int *pi; // pi объявлено указателем на целое число; в pi будет храниться адрес
int *api[3]; // объявлен массив указателей на числа целые
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите разобраться с указателями!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]