Você está aqui: C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como declarar e inicializar um array unidimensional em C usando a notação {}Quantidade de visualizações: 14285 vezes |
A notação {} é muito conveniente quando precisamos declarar e inicializar um vetor ou uma matriz em apenas uma linha. Veja o trecho de código abaixo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // declara e inicializa um array de 5 inteiros int valores[5] = {43, 12, 8, 4, 102}; int i; // exibe os valores do array for(i = 0; i < 5; i++){ printf("%d\n", valores[i]); } system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: 43 12 8 4 102 |
Link para compartilhar na Internet ou com seus amigos: |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantesQuantidade de visualizações: 16548 vezes |
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- int *ponteiro_int; float *ponteiro_float; double *ponteiro_double; Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- void *ponteiro; // ponteiro genérico Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int valor = 20; float valor2 = 5.23; void *ponteiro; // ponteiro genérico ponteiro = &valor; // aponta para um inteiro printf("%d\n", *(int *)ponteiro); ponteiro = &valor2; // aponta para um float printf("%0.2f\n", *(float *)ponteiro); system("PAUSE"); return 0; } Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- printf("%d\n", *(int *)ponteiro); A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- printf("%d\n", *ponteiro); [Warning] dereferencing 'void *' pointer invalid use of void expression Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ponteiro = &valor; // aponta para um inteiro int *ponteiro_int = ponteiro; printf("%d\n", *ponteiro_int); Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função C que verifica se duas strings são iguais ou diferentes (sem considerar maiúsculas e minúsculas)Quantidade de visualizações: 9694 vezes |
Esta dica mostra como escrever uma função em linguagem C que verifica se duas strings são iguais ou diferentes (sem considerar maiúsculas e minúsculas, ou seja, case insensitive). O nome da função é str_equal(). Esta função aceita duas strings como argumentos e retorna 1 se estas forem iguais e 0 em caso contrário. Experimente, faça as devidas alterações e adicione mais esta função ao seu repertório de códigos C:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> // função personalizada que permite verificar // se duas strings são iguais ou diferentes sem // considerar maiúsculas e minúsculas int str_equal(const char *str1, const char *str2){ while((toupper(*str1) == toupper(*str2)) && (*str1)){ str1++; str2++; } return((*str1 == 0) && (*str2 == 0)); } int main(int argc, char *argv[]){ char palavra1[] = "Java"; char palavra2[] = "Java"; if(str_equal(palavra1, palavra2) == 1) printf("As palavras sao iguais"); else printf("As palavras sao diferentes"); puts("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Apostila C para iniciantes - Como usar ponteiros na linguagem CQuantidade de visualizações: 32336 vezes |
Antes de pensarmos em ponteiros, é importante nos lembrarmos de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos). O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variável do tipo int int valor = 10; // ponteiro para uma variável do tipo int int *p = &valor; // exibe o valor da variável "valor", apontada // pelo ponteiro p printf("%d", *p); printf("\n\n"); system("PAUSE"); return 0; } Neste código nós temos a declaração e definição de duas variáveis: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- int valor = 10; int *p = &valor; A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor. Observe a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- printf("%d", *p); Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- *p = 30; Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuimos a ele o endereço de uma outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso me lembra os velhos tempos da tela azul de morte. |
Vamos testar seus conhecimentos em JavaScript |
Um arquivo JavaScript externo precisa, obrigatoriamente, conter a tag <script> A) Verdadeiro B) Falso Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
No que toca à extensão, qual bacia hidrográfica é considerada a maior bacia do mundo? A) Bacia Amazônica. B) Bacia Platina. C) Bacia Chinesa. D) Bacia do Rio Grande. E) Bacia do Rio da Prata. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Java |
Analise o seguinte código Javapublic class Estudos { public static void main(String[] args) { int a = 3; System.out.println(++a * 8); } } Qual é o resultado de sua execução? A) 24 B) 32 C) 72 D) 25 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O código de ética profissional: Concorrência A estrutura de mercado denominada "livre concorrência" tem como principal característica a competição empresarial de maneira correta, transparente e honesta. Nesse ambiente, é necessária a regulamentação da economia por parte do Estado, pois isso gera benefícios aos consumidores. Marque a alternativa que apresenta os benefícios decorrentes da regulamentação. A) A coletividade passa a contar com mais opções de produtos importados, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. B) A coletividade passa a contar com mais opções de produtos, preços e menos rigor na qualidade, além de oferecer às empresas um ambiente econômico saudável. C) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico monopolista. D) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. E) Os Estados menos desenvolvidos passam a contar com isenção de impostos, mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 76.1234 print("O valor é: %0.2f" % valor) A) O valor é: 76.00 B) O valor é: 76.12 C) O valor é: 0076 D) O valor é: 0.76 E) O valor é: 76.13 Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Java - Como usar null em Java |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |