27 maj
Laboratoria nr 12 program nr 1
Funkcje, ogólna struktura funkcji. Umieszczanie definicji funkcji w programie. Zmienne lokalne i globalne. Zasięg i widzialność identyfikatorów.
#include "stdafx.h" #include <iostream> // Funkcja inline inline double square(double x) { return x*x;}; // Funkcja zachowujaca wartosc na ktora wskazuje wskaznik i zwracajaca nowy wynik float square(float const * x); // Modyfikacja wartosci pod adresem wskazywanym przez wskaznik i zwrocenie dodatkowo adresu modyfikowanej wartosci float *psquare(float * x); // Alternatywne do wskaznikow przekazywanie przez referencje void square(float &x); float psquare(float const &x); /** * Funkcje inline wystepuja w C++, C tej funckji nie posiada. * Program demonstrujacy tworzenie, wywolywanie i dzialanie funkcji inline, jak i pozostalych funkcji * @author Marcin Mironczuk */ int main() { double a = 0; std::cout << "Podaj wartosc a: " << std::endl; std::cin >> a; std::cout << "Kwadrat liczby to: " << square(a) << std::endl; double *p1 = &a; std::cout << "Wartosc p1: " << *p1 << std::endl; std::cout << "Adres p1: " << p1 << std::endl; std::cout << "Adres a: " << &a << std::endl; float k = 2; float *p2 = &k; std::cout << "Wartosc k: " << square(p2) << std::endl; std::cout << "Wartosc k: " << *psquare(p2) << std::endl; std::cout << "Wartosc k po modyfikacji przez *psquare(): " << k << std::endl; square(k); std::cout << "Wartosc k po modyfikacji przez square(float &x): " << k << std::endl; std::cout << "Modyfikacja k poprzez psquare(float const &x): " << psquare(k) << std::endl; std::cout << "Wartosc k po modyfikacji przez psquare(float const &x): " << k << std::endl; std::cin.get(); std::cin.get(); return 0; } // zabezpiecznie przed modyfikacja wartosci wskazanej float square(float const * x) { return (*x)*(*x); }; float *psquare(float * x) { *x = (*x)*(*x); return x; }; // Troche niebezpiecznie modyfikujemy przekazywana wartosc void square(float &x) { x = x*x; }; // Bardziej bezpieczny sposob float psquare(float const &x) { return x*x; }
Skomentuj ten wpis