Um projeto onde eu disponibilizo meus resumos e links interessantes para auxiliar outras pessoas que desejam estudar sobre programação.
Feito com 🖤 por levxyca.
📂 Um projeto onde eu disponibilizo meus resumos e links interessantes para auxiliar outras pessoas que desejam estudar sobre programação.
Home Page: http://docs.levxyca.com/
License: MIT License
Um projeto onde eu disponibilizo meus resumos e links interessantes para auxiliar outras pessoas que desejam estudar sobre programação.
Feito com 🖤 por levxyca.
Novos resumos foram adicionados no repositório, é preciso colocar eles no README seguindo o exemplo dos outros que já estão lá.
Seria interessante reforçar que include é uma diretiva de pré-processamento
.
Só "diretiva" fica vago.
stdio.h é um arquivo de cabeçalho, não uma biblioteca.
Bibliotecas são binários compilados.
Cabeçalhos no geral contém somente declarações de estruturas ou funções e aí durante o processo de compilação que as respectivas bibliotecas são linkadas.
Em tipos de variáveis seria interessante deixar mais claro a definição de double.
"ponto flutuante de precisão dupla", por exemplo.
Na parte sobre caracteres de escape seria bom envolver eles com aspas para que a barra invertida de escape não suma em alguns dos exemplos.
Sem aspas: "
Com aspas: \"
O mesmo problema ocorre em outros lugares, como na seção de testes e comparação e na explicação de strcmp
.
Na parte sobre associatividade faltou fazer a distinção entre pré-incremento/decremento e pós-incremento/decremento.
++
e --
só tem associatividade da direita para a esquerda se forem pré-incremento/decremento.
Quando são de pós-incremento/decremento, não só a associatividade é da esquerda para a direita, mas também têm precedência sobre pré-incremento/decremento. Estando no mesmo nível do operador de chamada de função.
Como já mencionaram no Discord, em "Referências e vetores" o printf está errado.
Não se usa & no printf, a menos que você queira imprimir o endereço da posição e não o valor dela.
Sua declaração de matriz tem três erros também:
;
, mas sim com ,
Original:
float matriz[2][5] = { {1, 2, 3, 4, 5}; {1, 3, 7, 8, 9}; {6, 5, 4, 7, 1} }
Correto:
float matriz[2][5] = { {1, 2, 3, 4, 5}, {1, 3, 7, 8, 9}};
Na parte de funções, tecnicamente você usou de exemplo uma definição de função, não uma declaração.
Claro, uma definição automaticamente também a declara, mas é possível também apenas declarar sem definir:
#include <stdio.h>
// protótipo da função
int duplica(int numero);
int main(void)
{
printf("Dobro de 2 = %d", duplica(2));
return 0;
}
int duplica(int numero)
{
return numero * 2;
}
Então para declarar uma função basta:
tipo_de_retorno nome_da_funcao ();
E para fazer um protótipo:
tipo_de_retorno nome_da_funcao (lista_de_parametros);
Em C a lista_de_parametros
teoricamente não é necessária na declaração, contudo, se não definir a lista, o compilador não poderá checar se os tipos, ordem e quantidade de argumentos estão corretos quando encontrar uma chamada da função.
E aí que vem a diferença entre declaração e protótipo.
Protótipo é quando você especifica todos os argumentos e declaração quando só coloca os parênteses sem especificar os parâmetros.
Por não fazer muito sentido declarar sem a lista de parâmetros, acaba que no geral as pessoas acabam usando os dois termos para se referir a um protótipo de função.
Na parte de leitura de strings o comentário sobre o scanf está errado.
Isso de "só recebe uma palavra" é por utilizar %s
e não limitação do scanf, vc poderia ler uma linha inteira assim:
scanf( " %[^\n]", variavel );
O outro erro está no "não controla a quantidade de caracteres recebido".
Isso também não tem nada a ver com o scanf, mas sim com usar %s
sem especificar o limite. Exemplos:
char variavel[40];
scanf( " %39s", variavel ); // le uma palavra, limitando em 39 caracteres
scanf( " %39[^\n]", variavel ); // le a linha inteira, limitando em 39 caracteres
(tem que usar tamanho-1, pois o \0 não entra no cálculo do scanf)
Seria até bom remover a parte sobre gets
, seu uso é mal visto e desencorajado.
Na parte sobre o fgets
está errado o comentário sobre "tamanho - 1".
O que se passa para fgets
é tamanho
mesmo, a própria função irá ler só até tamanho - 1
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.