#include void incfurado(int i) { ++i; } void incref(int &i) { ++i; } void inc(int *i) { ++(*i); } int *novo_int(int valor_inicial) { int *p = new int; *p = valor_inicial; return p; } void soma_se_existe(int *var, int *a_somar) { if (a_somar) { *var += *a_somar; } } struct casa {}; casa *nova_casa(double area) { casa *nova{nullptr}; if (area > 0) { nova = new casa; // montar com a area dada } return nova; } int main(int, char *[]) { int a{5}; double b{2.0}; int *pi = nullptr; double *pd = nullptr; //pi = &a; //pd = &b; pi = novo_int(1); pd = new double; *pd = 1.42; incfurado(a); incref(a); inc(&a); inc(pi); incref(*pi); soma_se_existe(&a, pi); soma_se_existe(&a, nullptr); std::cout << "a: " << a << ", b: " << b << std::endl; std::cout << "&a: " << pi << ", &b: " << pd << std::endl; std::cout << "*pi: " << *pi << ", *pd: " << *pd << std::endl; int const *pi2; int * const pi3 = pi; int const * const pi4 = pi2; delete pi; delete pd; }