Linguagem C 25.ª Edição Atualizada e Aumentada FCA Editora (c) 2025
8
EXERCÍCIOS PROPOSTOS – SOLUÇÃO 8.1 Usando s
Usando ptr
s[2] ou *(s+2)
ptr[2] ou *(ptr+2)
'r'
Valor
s ou &s[0]
ptr
1000
s+1 ou &s[1]
ptr+1
1001
(não aplicável)
&ptr
5000
8.2 8.2.1
O operador & (“endereço de”).
8.2.2
O caráter asterisco (*).
8.2.3
Coloca-se entre o tipo para que aponta e o nome da variável.
8.2.4
Um endereço de memória (ou NULL).
8.2.5
NULL.
8.2.6
Designa-se por “apontado por” e representa-se através de um asterisco (*).
8.2.7
*(&ptr) == ptr.
8.2.8
v[0] ou *v.
8.2.9
Porque os elementos de qualquer array ocupam sempre posições contíguas de memória.
8.2.10
float **var.
8.3 8.3.1 1: #include <stdio.h> 2: #include <string.h> 3: 4: char *my_strrchr(char *str, int ch) /* Versão 1 - Do início para o fim */ 5: { 6: char *ptr = NULL; 7: for (int i=0; str[i]!='\0'; i++) 8: if (str[i]==ch) 9: ptr=&str[i]; // ptr = str+i; 10: 11: return ptr; 12: } 13: 14: char *my_strrchr_alt(char *str, char ch) /* Versão 2 - Do fim para o início */ 15: { 16: char *ptr = str + strlen(str)-1; /* Colocar no último char útil da string */ 17: while (ptr >= str)
© FCA
1