Estrutura C
Estrutura C
Neste tutorial, você aprenderá sobre os tipos de estrutura em programação C com a ajuda de exemplos.
Na programação C, uma struct (ou estrutura) é uma coleção de variáveis (podem ser de diferentes tipos) sob um único nome.
Definir estruturas
Antes de criar variáveis de estrutura, você precisa definir seu tipo de dados. Para definir uma estrutura, o
struct
palavra-chave é usada. Sintaxe da estrutura
struct structureName {
dataType member1;
dataType member2;
...
};
Por exemplo,
struct Person {
char name[50];
int citNo;
float salary;
};
Aqui, um tipo derivado
struct Person
é definido. Agora, você pode criar variáveis desse tipo. Criar variáveis de estrutura
Quando um
struct
tipo é declarado, nenhum armazenamento ou memória é alocado. Para alocar memória de um determinado tipo de estrutura e trabalhar com ela, precisamos criar variáveis. Veja como criamos variáveis de estrutura:
struct Person {
// code
};
int main() {
struct Person person1, person2, p[20];
return 0;
}
Outra maneira de criar um
struct
variável é:
struct Person {
// code
} person1, person2, p[20];
Em ambos os casos,
- pessoa1 e pessoa2 são
struct Person
variáveis - p[] é um
struct Person
matriz de tamanho 20.
Acessar membros de uma estrutura
Existem dois tipos de operadores usados para acessar membros de uma estrutura.
.
- Operador membro->
- Operador de ponteiro de estrutura (será discutido no próximo tutorial)
Suponha que você queira acessar o salário de pessoa2 . Veja como você pode fazer isso.
person2.salary
Exemplo 1:estruturas C++
#include <stdio.h>
#include <string.h>
// create struct with person1 variable
struct Person {
char name[50];
int citNo;
float salary;
} person1;
int main() {
// assign value to name of person1
strcpy(person1.name, "George Orwell");
// assign values to other person1 variables
person1.citNo = 1984;
person1. salary = 2500;
// print struct variables
printf("Name: %s\n", person1.name);
printf("Citizenship No.: %d\n", person1.citNo);
printf("Salary: %.2f", person1.salary);
return 0;
}
Saída
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Neste programa, criamos um
struct
chamado Person
. Também criamos uma variável de Person
chamado pessoa1 . Em
main()
, atribuímos valores às variáveis definidas em Person
para a pessoa1 objeto.
strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;
Observe que usamos
strcpy()
função para atribuir o valor a person1.name . Isso ocorre porque nome é um
char
array (C-string) e não podemos usar o operador de atribuição =
com ele depois de declararmos a string. Por fim, imprimimos os dados de person1 .
Definição de tipo de palavra-chave
Usamos o
typedef
palavra-chave para criar um nome de alias para tipos de dados. É comumente usado com estruturas para simplificar a sintaxe de declarar variáveis. Por exemplo, vejamos o seguinte código:
struct Distance{
int feet;
float inch;
};
int main() {
struct Distance d1, d2;
}
Podemos usar
typedef
para escrever um código equivalente com uma sintaxe simplificada:
typedef struct Distance {
int feet;
float inch;
} distances;
int main() {
distances d1, d2;
}
Exemplo 2:definição de tipo C++
#include <stdio.h>
#include <string.h>
// struct with typedef person
typedef struct Person {
char name[50];
int citNo;
float salary;
} person;
int main() {
// create Person variable
person p1;
// assign value to name of p1
strcpy(p1.name, "George Orwell");
// assign values to other p1 variables
p1.citNo = 1984;
p1. salary = 2500;
// print struct variables
printf("Name: %s\n", p1.name);
printf("Citizenship No.: %d\n", p1.citNo);
printf("Salary: %.2f", p1.salary);
return 0;
}
Saída
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Aqui, usamos
typedef
com o Person
estrutura para criar um alias person
.
// struct with typedef person
typedef struct Person {
// code
} person;
Agora, podemos simplesmente declarar um
Person
variável usando o person
pseudônimo:
// equivalent to struct Person p1
person p1;
Estruturas aninhadas
Você pode criar estruturas dentro de uma estrutura na programação C. Por exemplo,
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integers;
} num1, num2;
Suponha que você queira definir imag de num2 variável para 11 . Veja como você pode fazer isso:
num2.comp.imag = 11;
Exemplo 3:estruturas aninhadas em C++
#include <stdio.h>
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integer;
} num1;
int main() {
// initialize complex variables
num1.comp.imag = 11;
num1.comp.real = 5.25;
// initialize number variable
num1.integer = 6;
// print struct variables
printf("Imaginary Part: %d\n", num1.comp.imag);
printf("Real Part: %.2f\n", num1.comp.real);
printf("Integer: %d", num1.integer);
return 0;
}
Saída
Imaginary Part: 11 Real Part: 5.25 Integer: 6
Por que structs em C?
Suponha que você queira armazenar informações sobre uma pessoa:seu nome, número de cidadania e salário. Você pode criar diferentes variáveis nome , citNo e salário para armazenar esta informação.
E se você precisar armazenar informações de mais de uma pessoa? Agora, você precisa criar variáveis diferentes para cada informação por pessoa:name1 , citNo1 , salário1 , nome2 , citNo2 , salário2 , etc
Uma abordagem melhor seria ter uma coleção de todas as informações relacionadas sob um único nome
Person
estrutura e usá-lo para cada pessoa. Mais sobre estrutura
- Estruturas e ponteiros
- Passando estruturas para uma função
Linguagem C
- C# Hello World - Seu primeiro programa em C#
- Palavras-chave e identificadores C#
- Variáveis C# e tipos de dados (primitivos)
- Operadores C#
- Operadores C# Bitwise e Bit Shift
- Entrada e saída básica em C#
- Expressões, instruções e blocos em C# (com exemplos)
- Comentários em C#
- Instrução C# switch
- C# ternário (? :) Operador