Last active
March 11, 2016 22:21
-
-
Save nenodias/6be10ebf39542db3a14b to your computer and use it in GitHub Desktop.
Exemplos em C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
*/ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <locale.h> //necessário para usar setlocale | |
#include <malloc.h> | |
struct Pessoa{ | |
int idade; | |
char* nome; | |
}; | |
int soma(int a, int b ){ | |
return a + b; | |
} | |
int multiplicacao(int a, int b ){ | |
return a * b; | |
} | |
/* Ponteiro para Função */ | |
/* tipo_retorno, nome_ponteiro, parâmetros */ | |
typedef int (*operacao_funcao)(int, int); | |
int calculo(int valor1, int valor2, operacao_funcao operacao){ | |
return operacao(valor1, valor2); | |
} | |
int main(void){ | |
setlocale(LC_ALL,""); | |
//Criando um ponteiro apontando para espaço vazio / NULO | |
int* p_numero = NULL; | |
//aloca espaço na memória para um ipo inteiro | |
p_numero = (int *)malloc( sizeof(int) ); | |
//Alterando o valor dentro do endereço de memória do ponteiro p_numero | |
*p_numero = 2; | |
//Mostrando o endereço da memória | |
printf("Endereço do Ponteiro: %d\n", p_numero); | |
//Usando o * para acessar o valor dentro dessa memória | |
printf("Valor dentro do Ponteiro: %d\n", *p_numero); | |
//Limpando espaço da memória | |
free(p_numero); | |
int valor = 5; | |
//p_numero recebe o endereço de valor | |
p_numero = &valor; | |
printf("Valor dentro do Ponteiro: %d\n", *p_numero); | |
//Alterando o "valor" que é a variavel que o ponteiro p_numero está apontando | |
*p_numero = 3; | |
printf("Valor dentro do Ponteiro: %d\n", *p_numero); | |
printf("Valor dentro do valor: %d\n", valor); | |
//Ponteiro pra struct | |
struct Pessoa * usuario = (struct Pessoa *)malloc( sizeof(struct Pessoa) ); | |
printf("\nDigite seu nome:"); | |
//Alocando espaço | |
usuario->nome = (char*)malloc(100); | |
scanf("%s", usuario->nome); | |
printf("Digite sua idade:"); | |
scanf("%i", &usuario->idade); | |
printf("Olá %s, você tem %d anos de idade\n", usuario->nome, usuario->idade ); | |
printf("Calculo %d \n", calculo(2, 4, soma) ); | |
printf("Calculo %d \n", calculo(2, 4, multiplicacao) ); | |
system("pause"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment