Указатели - разобрать код и причину его неработоспособности - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Возможно,вопрос глупый,но я не могу разобраться,а спросить некого,так как изучаю сам. Упражнение из книги Кернигана и Ритчи. Пишем функцию strcat()
void strcat(char *s, char *t)
{
    while(*s)
        s++;
    while(*s++ = *t++)
        ;
}
Так работает,но если сделать вот так,то уже не получается
void strcat(char *s, char *t)
{
    while(*s++)
        ;
    while(*s++ = *t++)
        ;
}
В связи с этим мне не понятно,почему второй вариант не рабочий? Пока не ноль идем по строке же,просто более короче записали первый! Заранее спасибо!

Решение задачи: «Указатели - разобрать код и причину его неработоспособности»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int values[] = { 40, 10, 100, 90, 20, 25 };
 
int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
 
int main ()
{
  int n;
  qsort (values, 6, sizeof(int), compare);
  for (n=0; n<6; n++)
     printf ("%d ",values[n]);
  return 0;
}

Объяснение кода листинга программы

  1. Объявлен массив целых чисел values[] с шестью элементами: 40, 10, 100, 90, 20, 25.
  2. Объявлена функция compare(), которая будет использоваться в функции qsort() для сортировки массива values[]. Эта функция принимает два указателя на целые числа и возвращает разницу между ними.
  3. В функции main() инициализируется переменная n для использования в цикле.
  4. Функция qsort() вызывается для сортировки массива values[] с использованием функции сравнения compare(). Первый аргумент - это начало массива, второй - количество элементов (6), третий - размер одного элемента (4, так как это int).
  5. В цикле for с переменной n от 0 до 5 (так как массив values[] содержит 6 элементов) выводится каждый элемент массива values[] с помощью функции printf().
  6. Функция main() возвращает 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы