A respeito de comandos e estruturas de dados utilizados na linguagem C, assinale a opção correta.
  • A.

    Se a função a seguir for utilizada para permutar os valores das variáveis inteiras a e b, ela deve ser chamada por meio do comando troca(a,b).

    troca(x,y);

    int *ax, *ay;

    { int temp ; t

    emp = *ax ;

    *ax = *ay ;

    *ay = temp; }

  • B. A declaração int a[10] define um vetor de tamanho 10, ou seja, um bloco de 10 objetos consecutivos a[1], a[2], ... a[10], e o comando x = *pa copia a posição de a[1] em x.
  • C. Se a é um vetor, então, para se apontar para o segundo elemento de a, pode-se utilizar tanto o comando f(&a[2]) como f(a+2), já que ambas são expressões do tipo apontador que se referem ao segundo elemento de a.
  • D. Se p é um apontador, p++ decrementa p para apontar para o próximo elemento, qualquer que seja o tipo de objeto para o qual p aponta, e p+=i incrementa p para apontar i+1 elementos, além do objeto para o qual p atualmente aponta.
  • E. A declaração int a[10] define um vetor a de tamanho 10. Assim, o nome de um vetor é uma constante, não uma variável. Construções como a = pa ou a++ ou p = &a não são corretas. Quando o nome de um vetor é passado para uma função, o que é passado é o endereço de sua primeira posição.