Mais conteúdo relacionado
Semelhante a Linguagem C 09 Ponteiros (20)
Mais de Regis Magalhães (20)
Linguagem C 09 Ponteiros
- 4. Exemplo #include <stdio.h> int main() { int x = 5; int *px; px = &x; printf ( "x: %d" , x); printf ( "px: %d" , *px); return 0; }
- 5. Exemplo #include <stdio.h> int main() { int x = 5; int *px; px = &x; printf ( "x: %d" , x); printf ( "px: %d" , *px); x = 7; printf ( "x: %d" , x); printf ( "px: %d" , *px); *px = 3; printf ( "x: %d" , x); printf ( "px: %d" , *px); return 0; }
- 6. Ponteiro para char #include <stdio.h> int strtamanho( char *str) { int tamanho = 0; while (*str) { tamanho++; str++; } return tamanho; } int main() { char palavra[100]; printf ( "Digite uma palavra: " ); gets (palavra); printf ( "O tamanho e: %d" , strtamanho(palavra)); return 0; }
- 7. Ponteiro para char #include <stdio.h> char *strupper( char *str) { char *inicio; inicio = str; while (*str) { *str = toupper(*str); str++; } return inicio; } int main() { char palavra[100]; printf ( "Digite uma palavra: " ); gets (palavra); printf ( "Em caixa alta: %s" , strupper(palavra)); return 0; }
- 13. Ponteiros para estruturas #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc( sizeof ( Pessoa )); strcpy (p-> nome , "Regis" ); p-> idade = 18; printf ( "Nome: %s - Idade: %d" , p-> nome , p-> idade ); free(p); return 0; }
- 14. Exemplo #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc(2 * sizeof ( Pessoa )); Pessoa *inicio = p; strcpy (p-> nome , "Regis" ); p-> idade = 18; p++; strcpy (p-> nome , "Maria" ); p-> idade = 25; p = inicio; printf ( "Nome: %s - Idade: %d" , p-> nome , p-> idade ); p++; printf ( "Nome: %s - Idade: %d" , p-> nome , p-> idade ); free(inicio); return 0; }
- 15. Exemplo #include <stdio.h> #include <string.h> #include <stdlib.h> struct pessoa { char nome [50]; int idade ; }; typedef struct pessoa Pessoa ; int main() { Pessoa *p = malloc(2 * sizeof ( Pessoa )); strcpy (p[0]. nome , "Regis" ); p[0]. idade = 18; strcpy (p[1]. nome , "Maria" ); p[1]. idade = 25; printf ( "Nome: %s - Idade: %d" , p[0]. nome , p[0]. idade ); printf ( "Nome: %s - Idade: %d" , p[1]. nome , p[1]. idade ); free(p); return 0; }
- 17. Passagem parâmetros por referência #include <stdio.h> void troca( int *x, int *y) { int aux = *x; *x = *y; *y = aux; } int main() { int n1, n2; printf ( "Digite n1: " ); scanf ( "%d" , &n1); printf ( "Digite n2: " ); scanf ( "%d" , &n2); troca(&n1, &n2); printf ( "n1 eh: %d" , n1); printf ( "n2 eh: %d" , n2); return 0; }
- 20. Lista Encadeada Simples #include <stdio.h> #include <stdlib.h> typedef struct pessoa Pessoa ; struct pessoa { char nome [50]; int idade ; Pessoa * proximo ; }; int main() { Pessoa *pAtual, *pInicio = NULL, *pAnterior = NULL; char continua; do { pAtual = malloc( sizeof ( Pessoa )); printf ( "Digite um nome: " ); gets (pAtual-> nome ); printf ( "Digite a idade: " ); scanf ( "%d" , &pAtual-> idade ); getchar (); if (pInicio == NULL) { pInicio = pAtual; } if (pAnterior != NULL) { pAnterior-> proximo = pAtual; } pAnterior = pAtual; printf ( "Insere mais (S/N)? " ); continua = getchar (); getchar (); } while (toupper(continua) != 'N' ); pAtual = pInicio; while (pAtual != NULL) { printf ( "Nome: %s - Idade: %d" , pAtual-> nome , pAtual-> idade ); pAtual = pAtual-> proximo ; } }