Hm... A dlaczego miałby coś wyświetlić? W tym kodzie nie ma instrukcji do wypisywania zawartości na standardowe wyjscie(na ekran).
Wytłumaczenie...
include <stdio.h>
#include <stdlib.h>
#include <string.h>
// deklaracja i implementacja funkcji f,
// która jako argument przyjmuje wskaźnik typu char i nie zwracająca nic
// pamiętajmy, że jest to kopia wskaźnika, a ten sam wskaźnik!
void f(char *s)
{
// pętla while
// jako warunek sprawdzający wyłuskuje wartość spod wskaźnika s,
// jeżeli wartość różna od 0 to pętla działa, w przeciwnym wypadku się przerywa
while(*s)
{
// funkcja strlen zwraca długość łańcucha znakowego
// następnie jeżeli długość ciągu znakowego jest NIE podzielna przez 2 bez reszty
// wtedy wchodzi do wykonania instrukcji w "if"
if(strlen(s)%2)
{
// *s - wyłuskanie wartość na która wskazuje wskaźnik,
// a następnie wpisanie pod ta komórkę znaku #
*s = '#';
}
// ikrementacja wskaźnika
// tutaj wskaźnik jest przesuwany na następny element.
++s;
}
}
int main()
{
char t[10] = "petla for"; // deklaracja i inicjalizacja tablicy statycznej.
f(t); // wywołanie funkcji "f" z argumentem t
return 0;
}
Jak się domyślam wynikiem tej funkcji będzie coś takiego:
#e#l#a #o#