Beruflich Dokumente
Kultur Dokumente
Module Introduction
5375, 6619, 9099, 10135
Structs
Programao
Sumrio:
5375, 6619, 9099, 10135
Structs
Programao
Tipos de Dados
* enum
?
5375, 6619, 9099, 10135
Structs
Programao
Structs: motivao
Exemplo:
typedef struct
{
char *nome;
char *morada;
long telefone;
} CLIENTE;
5375, 6619, 9099, 10135
Structs
Programao
Struct: definio
x.nome
inicializao semelhante aos
arrays
x.morada x
x.telefone
6
5375, 6619, 9099, 10135
Structs
Programao
tipo elemento2
tipo elementon
7
5375, 6619, 9099, 10135
Structs
Programao
Operador .
Operador
struct CLIENTE x, y;
y = x;
5375, 6619, 9099, 10135
Structs
Programao
#include<stdio.h>
Exemplo
main()
{
struct CLIENTE {
char *nome;
char *morada;
long telefone;
};
struct CLIENTE x, y;
y=x;
printf("Nome: %s\n",y.nome);
printf("Morada: %s\n",y.morada);
OUTPUT:
printf("Tel.: %d\n", y.telefone);
}
(ecr)
Nome: Joaquim Mira
Morada: R. Ag.Cima, 2, 2456-001 Agueda
Tel.: 239675413
5375, 6619, 9099, 10135
Structs
Programao
int main(){
VECTOR p = {5.0,10.0};
float a b
VECTOR q = {6.0,9.0};
float p_q; produtoInterno
p_q = produtoInterno(p,q);
int main(){
VECTOR p = {5.0,10.0};
float a b
VECTOR q = {6.0,9.0};
float p_q; produtoInterno
p_q = produtoInterno(&p,&q);
Passagem de estruturas
" alternativa 1: passa-se o nome da estrutura, o que implica a cpia do contedo da
estrutura para uma estrutura local da funo.
" alternativa 2: passa-se o endereo da estrutura para uma varivel apontadora que
local funo.
Passagem de arrays:
" alternativa 1: no existe!!! No possvel copiar ou passar o contedo
dum array para um array local duma funo. De facto, ao passar o nome do
array, no feita a cpia do contedo do array, mas sim a cpia do endereo do
array.
" alternativa 2: passa-se o endereo do array (i.e. do primeiro elemento), mas como
o compilador interpreta o nome do array como apontador para si prprio, basta
escrever o nome do array (sem ndice).
5375, 6619, 9099, 10135
Structs
Programao
Exemplo: passagem de estruturas e passagem de arrays
para funes
ESTRUTURAS:
Exemplo: passagem de estruturas e passagem de arrays
// RECEBE CPIAS DE 2 ESTRUTURAS
float produtoInterno(VECTOR a, VECTOR b);
ARRAYS:
18
5375, 6619, 9099, 10135
Structs
Programao
Exemplo: passagem por cpia de valor de endereo de
array
#include <stdio.h>
float produtoInterno(float a[], float b[]);
main(){
float p[2] = {5.0,10.0}; main
float q[2] = {6.0,9.0}; p_q p q
float p_q;
p_q = produtoInterno(p,q); a
float b
printf(Produto interno = %f,p_q); produtoInterno
}
main(){
float p[2] = {5.0,10.0}; main
float q[2] = {6.0,9.0}; p_q p q
float p_q;
p_q = produtoInterno(p,q); a
float b
printf(Produto interno = %f,p_q); produtoInterno
}
FIM