Код залил сюда: http://pastebin.com/KZYWBy4y
Пояснения в комментариях в самом коде, однако продублирую тут.
- Увидел объявление указателя в данном примере, однако не могу поянть, где ему присваивается адрес.
- Пустой массив Mass[] - как это?
Другие языки программирования и технологии
Си. Указатели и массивы.
по первой непонятке: функция ожидает указатель, когда на место указателя подставляется массив - в функцию передается указатель на нулевой элемент массива.
Я не знаю C но учу C++..в C++ если написать так int arr[] = {1, 2, 3, 4, 5} то компилятор сам определит размер массива.. так должно быть и в C..если ошибаюсь просветите.. на счёт указателя честно хз.. пока бьюсь с ними))
Алексей Савельев
Тогда чем принципиально массив int arr[] = {1, 2, 3, 4, 5} отличается от динамического? Зачем плясать с бубном вокруг динамических массивов, когда можно оставить его без явного указания размера?
В С
int m[] = {1, 2, 3};
int m[3] = {1, 2, 3};
int *m = new int[3]{1, 2, 3};
по сути одно и тоже
m == int*
int m[] = {1, 2, 3};
int m[3] = {1, 2, 3};
int *m = new int[3]{1, 2, 3};
по сути одно и тоже
m == int*
void quart(int n, float *x) //Тут первая непонятка. Я вижу объявление указателя *х,
и не надо видеть. Главное чтоб не ноль был
На входе второй параметр - указатель на любой кусок памяти с значением/значенИЯМИ
типа float. Неважно, что сюда передается - важно, как с этим указателем работают
void main()
{
float z[]={1,2,3,4}; //Тут вторая непонятка. Размер массива не указан -
int j; // ошибка синтаксиса или чему он будет равен?
Стандартная инициализация массива. Допускается такая запись. В данном случае
у него будет 4 элемента
quart(4,z);
//Передаём в функцию quart значения 4 и z.
// z передаётся всем массивом и как это относится к
// указателю в ф-ии quart?
весь массив не передается - передается указатель на его первый элемент.
можно было сделать так: quart(4,&z[0]); если в указатель передается
массив, то автоматически компилятор вставляет туда адрес первого элемента, т. е.
записи:
float* p;
p=massiv;
p=&massiv[0];
идентичны
и не надо видеть. Главное чтоб не ноль был
На входе второй параметр - указатель на любой кусок памяти с значением/значенИЯМИ
типа float. Неважно, что сюда передается - важно, как с этим указателем работают
void main()
{
float z[]={1,2,3,4}; //Тут вторая непонятка. Размер массива не указан -
int j; // ошибка синтаксиса или чему он будет равен?
Стандартная инициализация массива. Допускается такая запись. В данном случае
у него будет 4 элемента
quart(4,z);
//Передаём в функцию quart значения 4 и z.
// z передаётся всем массивом и как это относится к
// указателю в ф-ии quart?
весь массив не передается - передается указатель на его первый элемент.
можно было сделать так: quart(4,&z[0]); если в указатель передается
массив, то автоматически компилятор вставляет туда адрес первого элемента, т. е.
записи:
float* p;
p=massiv;
p=&massiv[0];
идентичны
Похожие вопросы
- Вопрос по указателям и массива С++
- Язык СИ. Массивы Ребят, как на Си написать сортировку массива от меньшего к большему?
- Язык Си: В одномерном массиве, состоящем из n вещественных элементов, вычислить: номер максимального по модулю элемента
- Си++. Работа с массивом символов
- помощь по си! сортировка одномерного массива!
- помогите написать программу на языке Си: В одномерном массиве целых чисел заменить максимальное значение минимальным.
- Список с использованием указателей на Си
- Инициализация массива. Указатели.
- Массив указателей в C++
- Как создать массив указателей на числа? (язык Си)