Fundamentos de Programação 1

Slides:



Advertisements
Apresentações semelhantes
Funções em C.
Advertisements

Programação II Estruturas de Dados
Introdução a Programação
Ponteiros em C.
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Fundamentos de Programação 1
Ponteiros.
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO I PONTEIROS.
Prof. Ricardo Santos PONTEIROS
Uso de parâmetros na linha de comando. Parâmetros da função main:
Declarando e Chamando Funções
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
Revisão Luis Antonio Tavares
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Linguagem de Programação
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Fundamentos de Programação 1
Fundamentos de Programação 1 Slides 12 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Union, Enum e Typedef ”
Fundamentos de Programação 1 Slides C – Número 4 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “vetores de números e de caracteres”
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
INE5408 Estruturas de Dados Ponteiros, passagem de parâmetros e modelos de memória.
1 Aula 06 – Funções Prof. Filipe Mutz Colocar mais exemplos de funções simples no começo.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória.
1 Programação em C Aula 7. 2 Um lojista atribui o preço de venda dos itens de sua loja com um número racional (uma fração de inteiros). Este comerciante.
Introdução à Computação para Engenharia MAC2166
Estruturas de Dados Aula 2: Estruturas Estáticas
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Estrutura Sequencial COUT CIN
Fundamentos de Programação 1
INF1007: Programação 2 2 – Alocação Dinâmica
INE5408 Estruturas de Dados
INF1007: Programação 2 5 – Tipos Estruturados
INF1007: Programação 2 1 – Ponteiros
Fundamentos de Programação 1
Estrutura de Dados Revisão
PCI- Estruturas de Controle
Fundamentos de Programação 1
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO
FUNDAMENTO DE PROGRAMAÇÃO
Fundamentos de Programação1
Estrutura Sequencial COUT CIN
Programação de Computadores I – Arquivos
aritmética de ponteiros
PROGRAMAÇÃO I UNIDADE 3.
Algoritmos e Programação MC102
Programação de Computadores I – Ponteiros
Fundamentos de Programação 1
Profa. Maria Augusta Constante Puget
Linguagem de Programação Aplicações Avançadas de Microprocessadores
Orientação a Objetos - Programação em C++
Fundamentos de Programação 1
Orientação a Objetos - Programação em C++
Programação de Computadores I – Ponteiros
Fundamentos de Programação 1
Algoritmos e Estruturas de Dados I – Ponteiros
Estruturas de Dados em C
DHD – Desenvolvimento em Hardware
Programação de Computadores LINGUAGEM C – AULA 03 – PROF. WELLINGTON TELLES.
parâmetros e modelos de memória
Transcrição da apresentação:

Fundamentos de Programação 1 Linguagem C “Ponteiros” Slice 14 Prof. SIMÃO Jean Marcelo SIMÃO

Um ponteiro é uma variável que contém um endereço de memória Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra variável na memória. Se uma variável contém o endereço de um outra, então a primeira variável é dita apontar para a segunda [Schiltd, 1996]. Endereço na memória Variável na memória 1000 1003 1 7 2 * 1001 1002 1003 1004

Exemplo #include <stdlib.h> #include <stdio.h> int main() { int x, y; x = 1; int* p; // Declaração de um ponteiro para inteiro. // Isto significa que p poderá apontar para um inteiro. // Um ponteiro é declarado com auxilio do * p = &x; // Aqui o ponteiro recebe o endereço da variável x na memória. // Para um ponterio receber o endereço de uma variável se faz // necessário utilizar o operador & antes da variável. y = *p; // Aqui a variável y recebe o valor da variável apontada pelo // ponteiro p. Na prática, isto significa que y terá o valor // da variável x. // Para uma variável receber o valor da variavél apontado por // um ponteiro, faz-se necessário utilizar o operador *. // Assim sendo, o operador * serve para diversas funções em C: // - serve para declarar um ponteiro. // - serve para informar o valor de uma variável apontada. // - serve para multiplicar dois números (sua função primordial). // Portanto, o uso do * depende do contexto. // ...

// ... printf ("O valor da variável x : %i. \n", x); printf ("O endereço da variável x : %p. \n", &x); printf ("\n"); printf ("O valor da variável x via o ponteiro p : %i. \n", *p); printf ("O endereço da variável x via o ponteiro p: %p. \n", p); printf ("O endereço do ponteiro p : %p. \n", &p); printf ("O valor da variável y, adquirido de x, via p: %i. \n", y); printf ("O endereço da variável y : %p. \n", &y); // O %p serve para expressar o valor de um endereço de memória. system("Pause"); return 0; }

Exemplo #include <stdlib.h> #include <stdio.h> int main() { int x, y; x = 1; int *p; p = &x; y = *p; printf ("O valor da variável x : %i. \n", x); printf ("O endereço da variável x : %p. \n", &x); printf ("\n"); printf ("O valor da variável x via o ponteiro p : %i. \n", *p); printf ("O endereço da variável x via o ponteiro p: %p. \n", p); printf ("O endereço do ponteiro p : %p. \n", &p); printf ("O valor da variável y, adquirido de x, via p: %i. \n", y); printf ("O endereço da variável y : %p. \n", &y); // O %p serve para expressar o valor de um endereço de memória. system("Pause"); return 0; }

Exemplo 2 #include <stdlib.h> #include <stdio.h> int main() { int x, y; x = 1; int *p; p = &x; y = *p; printf ("O valor da variável x : %i. \n", x); printf ("O endereço da variável x : %p. \n \n", &x); printf ("O valor da variável x via o ponteiro p : %i. \n", *p); printf ("O endereço da variável x via o ponteiro p: %p. \n", p); printf ("O endereço do ponteiro p : %p. \n \n", &p); printf ("O valor da variável y, adquirido de x, via p: %i. \n", y); printf ("O endereço da variável y : %p. \n \n", &y); *p = 5; // Aqui muda-se o valor de x via *p. printf("O novo valor da variável x : %i. \n", x); printf("O endereço da variável x : %p. \n \n", &x); printf("O novo valor da variável x via o ponteiro p: %i. \n", *p); printf("O endereço da variável x via o ponteiro p: %p. \n", p); printf("O endereço do ponteiro p : %p. \n \n", &p); . . . }

Exemplo 3 #include <stdlib.h> #include <stdio.h> // O segundo parâmetro é um ponteiro de real (float) void area_quadrado (float ld, float *ar) { // Aqui o valor da variável apontada pelo ponteiro ar será alterada. *ar = (ld * ld); // bem por isto que se diz que é uma passagem por referência... } int main() float lado, area; area = -1; lado = 2; // No segundo parâmeto passa-se o endereço da variável area // para o ponteiro ar, definido na função acima (vide acima). area_quadrado (lado, &area); printf("O valor da área é: %f \n", area); system("Pause"); return 0;