Linha | Codigo |
001 | // Prof. Leo^nidas - http://www.matematica.br http://line.ime.usp.br |
002 | // MAC0122 - 2017/09/25 |
003 | |
004 | // Introducao aos apontadores em C: explica o uso dos operadores "&" e "*" |
005 | // Explica como funcionam os parametros da funcao "main" |
006 | |
007 | #include <stdio.h> |
008 | |
009 | // A funcao "main" e' o ponto de entrada do programa C e pode ser invocado recebendo parametros e devolvendo um resultado ("int"). |
010 | // "int" => funcao inicial (main) deve devolver inteiro (0 => sem erro; 1 => com erro) |
011 | // "int argc" => recebera o numero de parametros usados na chamada deste programa C |
012 | // "char *argv[]" => recebera cada parametro usado na chamada deste programa (sendo o primeiro seu proprio nome) |
013 | int main (int argc, char *argv[]) { |
014 | int n, i, a, b, *ap; // "ap" e' um apontador para variaveis do tipo "int" |
015 | printf("Parametros usados:\n argc=%d\n", argc); |
016 | for (i=0; i<argc; i++) |
017 | printf(" %d : %s\n", i, argv[i]); |
018 | |
019 | // O operador "&" implica em pegar o endereco da variavel, nao o seu valor (lembrete, desse modo |
020 | // o motivo do "scanf" precisar do endereco da variavel, nao seu valor, e' para poder altera-la com o valor lido) |
021 | // O operador "*" e' aplicavel apenas `a variaveis apontadoras (para variaveis) e |
022 | // implica que deve ser devolvido o conteudo da variavel apontada (pelo apontador) |
023 | ap = &a; // (i) "ap" recebe o endereco reservado a variavel "a" ("ap" aponta para "a") |
024 | *ap = 10; // (ii) como "ap" aponta para a variavel "a", entao essa ultima posicao de memoria recebera o valor 10 |
025 | printf("%d\n", a); // apenas para conferir a observacao (ii) acima |
026 | return 0; |
027 | } |