Podcast
Questions and Answers
Qual a principal finalidade das estruturas (structs
) na linguagem C?
Qual a principal finalidade das estruturas (structs
) na linguagem C?
- Agrupar diferentes tipos de dados sob um único nome, facilitando a organização e manipulação. (correct)
- Criar interfaces gráficas para o usuário.
- Definir novas funções para o programa.
- Realizar operações matemáticas complexas.
Qual palavra-chave é utilizada em C para declarar uma nova estrutura?
Qual palavra-chave é utilizada em C para declarar uma nova estrutura?
- `typedef`
- `class`
- `union`
- `struct` (correct)
Qual das alternativas abaixo apresenta a forma correta de declarar uma variável p1
do tipo struct Pessoa
em C, sem o uso de typedef
?
Qual das alternativas abaixo apresenta a forma correta de declarar uma variável p1
do tipo struct Pessoa
em C, sem o uso de typedef
?
- `new Pessoa p1;`
- `p1 struct Pessoa;`
- `struct Pessoa p1;` (correct)
- `Pessoa p1;`
Como se acessa o membro idade
de uma variável p1
do tipo struct Pessoa
em C?
Como se acessa o membro idade
de uma variável p1
do tipo struct Pessoa
em C?
Qual operador é utilizado para acessar um membro de uma struct
através de um ponteiro?
Qual operador é utilizado para acessar um membro de uma struct
através de um ponteiro?
O que significa 'aninhamento de structs' em C?
O que significa 'aninhamento de structs' em C?
Quando uma struct
é passada para uma função por valor, o que acontece com a estrutura original?
Quando uma struct
é passada para uma função por valor, o que acontece com a estrutura original?
Qual é a principal desvantagem de passar uma struct
grande por valor para uma função em C?
Qual é a principal desvantagem de passar uma struct
grande por valor para uma função em C?
Qual função da biblioteca padrão de C é utilizada para alocar memória dinamicamente para uma struct
?
Qual função da biblioteca padrão de C é utilizada para alocar memória dinamicamente para uma struct
?
Após alocar dinamicamente memória para uma struct
, qual é a responsabilidade do programador em relação à memória alocada?
Após alocar dinamicamente memória para uma struct
, qual é a responsabilidade do programador em relação à memória alocada?
Suponha que você tenha uma struct Livro
com campos como título
(string) e ano
(inteiro). Qual seria a maneira correta de declarar um ponteiro para essa struct e alocar memória para ela?
Suponha que você tenha uma struct Livro
com campos como título
(string) e ano
(inteiro). Qual seria a maneira correta de declarar um ponteiro para essa struct e alocar memória para ela?
Se você tem um ponteiro p
para uma struct Pessoa
, e idade
é um membro dessa struct, qual das seguintes opções acessa corretamente a idade?
Se você tem um ponteiro p
para uma struct Pessoa
, e idade
é um membro dessa struct, qual das seguintes opções acessa corretamente a idade?
Qual das seguintes declarações de struct
demonstra corretamente o conceito de aninhamento, onde uma struct Endereco
está dentro de uma struct Cliente
?
Qual das seguintes declarações de struct
demonstra corretamente o conceito de aninhamento, onde uma struct Endereco
está dentro de uma struct Cliente
?
Em C, qual a diferença fundamental entre passar uma struct
por valor e passar um ponteiro para uma struct
para uma função, em termos de modificação da struct original?
Em C, qual a diferença fundamental entre passar uma struct
por valor e passar um ponteiro para uma struct
para uma função, em termos de modificação da struct original?
Qual das seguintes opções representa um problema comum associado ao uso de malloc
para alocar memória para structs em C?
Qual das seguintes opções representa um problema comum associado ao uso de malloc
para alocar memória para structs em C?
Considere a seguinte struct: struct Coord { int x; int y; };
. Qual das opções abaixo mostra a forma correta de inicializar uma variável ponto
dessa struct com os valores x=10
e y=20
na declaração?
Considere a seguinte struct: struct Coord { int x; int y; };
. Qual das opções abaixo mostra a forma correta de inicializar uma variável ponto
dessa struct com os valores x=10
e y=20
na declaração?
Se você tem uma struct Endereco
aninhada dentro de uma struct Pessoa
, como você acessaria a rua do endereço de uma pessoa, dado um ponteiro p
para a struct Pessoa
?
Se você tem uma struct Endereco
aninhada dentro de uma struct Pessoa
, como você acessaria a rua do endereço de uma pessoa, dado um ponteiro p
para a struct Pessoa
?
Qual é a principal razão para usar typedef
ao definir structs em C?
Qual é a principal razão para usar typedef
ao definir structs em C?
Qual das seguintes tarefas não é uma aplicação comum de structs em C?
Qual das seguintes tarefas não é uma aplicação comum de structs em C?
Flashcards
O que são structs
em C?
O que são structs
em C?
Tipos de dados personalizados que agrupam diferentes variáveis sob um mesmo nome.
Como declarar uma struct
?
Como declarar uma struct
?
Usamos a palavra-chave struct
, seguida do nome da estrutura e dos campos internos.
Como criar uma variável de struct
?
Como criar uma variável de struct
?
Podemos criar uma variável de struct
diretamente (struct Pessoa p1;
) ou usando typedef
para simplificar a declaração (Pessoa p1;
).
Como acessar membros de uma struct
?
Como acessar membros de uma struct
?
Signup and view all the flashcards
Como inicializar uma struct
?
Como inicializar uma struct
?
Signup and view all the flashcards
Como usar struct
com ponteiros?
Como usar struct
com ponteiros?
Signup and view all the flashcards
Podemos aninhar structs
?
Podemos aninhar structs
?
Signup and view all the flashcards
Como passar uma struct
para uma função?
Como passar uma struct
para uma função?
Signup and view all the flashcards
O que acontece ao passar struct
grande por valor?
O que acontece ao passar struct
grande por valor?
Signup and view all the flashcards
Como alocar dinamicamente uma struct
?
Como alocar dinamicamente uma struct
?
Signup and view all the flashcards
Study Notes
- As estruturas (
structs
) em C são tipos de dados personalizados que permitem agrupar diferentes variáveis sob um único nome.
Declaração de struct
- Para declarar uma
struct
, utiliza-se a palavra-chavestruct
seguida do nome da estrutura e dos campos internos definidos entre chaves. - Exemplo:
struct Pessoa {
char nome;
int idade;
float altura;
};
Criação de Variáveis struct
- É possível criar variáveis de uma
struct
diretamente ou utilizandotypedef
. - Declaração normal:
struct Pessoa p1;
- Com
typedef
:
typedef struct {
char nome;
int idade;
} Pessoa;
Pessoa p1; // Declaração sem "struct"
Acesso aos Membros da struct
- O acesso aos membros de uma
struct
é feito através do operador ponto (.
). - Exemplo:
p1.idade = 25;
printf("Idade: %d\n", p1.idade);
Inicialização de struct
- Uma
struct
pode ser inicializada diretamente na declaração. - Exemplo:
struct Pessoa p1 = {"Carlos", 30, 1.75};
struct
com Ponteiros
- Ao utilizar ponteiros para acessar membros de uma
struct
, usa-se o operador seta (->
). - Exemplo:
struct Pessoa *p = &p1;
printf("Idade: %d\n", p->idade); // Equivalente a (*p).idade
Aninhamento de structs
- É possível incluir uma
struct
dentro de outra, um conceito conhecido como aninhamento destructs
. - Exemplo:
struct Data {
int dia, mes, ano;
};
struct Pessoa {
char nome;
struct Data nascimento;
};
Passagem de struct
para Funções
- Uma
struct
pode ser passada para uma função por valor ou por referência (ponteiro). - Passagem por valor:
void mostrarPessoa(struct Pessoa p) {
printf("Nome: %s\n", p.nome);
}
- Passagem por referência:
void modificarIdade(struct Pessoa *p) {
p->idade = 40;
}
Eficiência na Passagem de structs
- Passar uma
struct
grande por valor pode resultar em baixa eficiência devido à cópia integral da estrutura na memória; a passagem por ponteiro é mais eficiente.
Alocação Dinâmica de struct
- Utiliza-se
malloc()
para alocar memória dinamicamente para umastruct
. - Exemplo:
struct Pessoa *p = (struct Pessoa *)malloc(sizeof(struct Pessoa));
strcpy(p->nome, "Maria");
p->idade = 28;
free(p); // Liberação da memória alocada
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.