Desenvolvimento de Sistemas de Informação I
ANDERSON MACEDO
Especialista em Engenharia de Software com UML
LINGUAGEM DE PROGRAMAÇÃO
E ESTRUTURA DE DADOS
Aula 4
Ponteiros em C#
Linguagem C#
OBJETIVO DA AULA
Nesta aula vamos aprender como é feita a criação, a declaração e a manipulação de ponteiros na linguagem C#(Sharp), utilizando‐se de exemplos criados em projetos “Console
Application”.
Variáveis: endereçam uma posição de memória que contém um determinado valor dependendo do seu tipo (char, int, float, double, string...) void main() { long a=5; char ch=‘x’;
}
DEFINIÇÃO
1
Ponteiros: são variáveis cujo conteúdo é um endereço de memória.
Assim, um ponteiro endereça uma posição de memória que contém valores que são na verdade endereços para outras posições de memória. void main() { long a=5; char ch=‘x’; long *aPrt = &a;
}
DEFINIÇÃO
DEFINIÇÃO
CRIAÇÃO DE PONTEIROS
OPERADORES PARA PONTEIROS
Para declararmos um ponteiro, basta utilizar o operador *(asterisco) antes do nome da variável.
Exemplo:
int *p.
Para trabalharmos com ponteiros, C# disponibiliza os seguintes operadores:
Ponteiros são tipados, ou seja, devem ser classificados em um tipo e somente podem apontar para variáveis deste mesmo tipo.
unsafe void macedo() { long a=5; char ch=‘x’; long *aPrt = &a;
C.WL(*aPrt);
C.WL(aPrt);
C.WL(&aPrt);
}
O que será impresso na tela?
5
0x0100
0x0105
OPERADORES PARA PONTEIROS
& ‐ Fornece o endereço de memória onde está armazenada uma variável. Lê‐se “o endereço de”.
* ‐ Valor armazenado na variável referenciada por um ponteiro.
Lê‐se “o valor apontado por”.
EXEMPLO 1 void macedo ()
{
int num, valor; int *p; num=55; p=# /* Pega o endereço de memória de num */ valor=*p; /* Valor é igualado a num de uma maneira indireta */
C.WL (valor);
C.WL ("Endereco para onde o ponteiro aponta: " + p);
C.WL ("Valor da variável apontada: " + *p).
}
2
OPERADORES PARA PONTEIROS
PERGUNTAS