Vocês estão bem? hoje eu vou ensinar o básico de C! vamos lá então, C é uma linguagem de programação procedural compilada criada na década de 70 por Dennis Ritchie, a linguagem foi criada para reescrever o Unix que estava escrito em B, hoje em dia C é usada no kernel Linux, em interpretadores de linguagens com Python. Lua e Ruby, por traz do Windows, programas como GIMP, interfaces gráficas como Gnome, XFCE e LXDE. Sobre os compiladores vai dá sua preferencia, tem vários como o GNU/GCC que é dá GNU, LLVM Clang que é criado sobre o LLVM que é uma infraestrutura de compiladores que Rust, Zig e Swift usam em seus compiladores, tem o MSVC que é da Microsoft com foco em C++ mas funciona de boa. C tem vários sistemas de compilação, como o GNU/Make, CMake, Meson, Ninja e XMake ou se pode criar um script em Python ou Shell para fazer a build do seu programa em C.
Vamos fazer nosso primeiro “Hello World!”, crie um arquivo chamado main.c que é usado como pontapé de um programa C, recomendo que sabia outra linguagem de programação ou o básico de ciencia da computação e lógica de programação.
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
Esse código mostra “Hello World!” no console, a linha #include <stdio.h> é uma diretiva de inclusão, ele inclui um header de I/O. int main()... função main é o pontapé de uma aplicação, printf("Hello World!\n"); imprime na tela Hello World de forma formatada por isso do F no final, F de Format, return 0 indica que o programa terminou com sucesso.
Você pode compilar com o gcc main.c, esse comando gera um arquivo chamado a.out você deve executa-lo com o ./a.out. Agora vamos aprender sobre variáveis.
#include <stdio.h>
int main() {
int age = 15;
char gender = 'm';
float height = 1.89f;
const float pi = 3.14;
return 0;
}
Esse código declara três variáveis e uma constante, a sintaxe de declaração é simples é o tipo, depois o nome após o valor.
#include <stdio.h>
int main() {
int x, y;
x = 0;
y = 1;
return 0;
}
As variáveis podem ser declaradas mas podem ser atribuídas depois, para evitar falhas de segmentação atribua sempre ela.
#include <stdio.h>
int main() {
int age = 14;
char gender = 'F';
printf("%d\n", age);
printf("%c\n", letter);
return 0;
}
Para escreve uma variável na tela em C você deve usar no local quer um formatador como o %d que serve para inteiros, %c para uma letra.
#include <stdio.h>
int main() {
int number = 14;
if(number % 2 == 0) {
printf("Even!\n");
} else {
printf("Odd!\n");
}
return 0;
}
Os condicionais em C são similares da linguagem Java, JavaScript, C#, etc, esse código verifica se um número é par ou impar.
#include <stdio.h>
int main() {
int number = 10;
if (number % 3 == 0 || number % 5 == 0) {
printf("FizzBuzz\n");
} else if (number % 3 == 0) {
printf("Fizz\n");
} else if (number % 5 == 0) {
printf("Buzz\n");
} else {
printf("%d", number);
}
return 0;
}
Esse é o FizzBuzz um exercício clássico da programação em C, os operadores lógicos de C são iguais a de várias linguagem, como C++, Java, etc.
#include <stdio.h>
int main() {
int day = 5;
switch(day) {
case 1:
printf("Sunday\n");
break;
case 2:
printf("Monday\n");
break;
case 3:
printf("Tuesday\n");
break;
case 4:
printf("Wednesday\n");
break;
case 5:
printf("Thursday\n");
break;
case 6:
printf("Friday\n");
break;
case 7:
printf("Saturday\n");
break;
default:
printf("Invalid number!\n");
}
return 0;
}
Esse é um exemplo de Switch, Switch são muito útil durante um códigos que tem vários condicionais aninhados.
#include <stdio.h>
#include <unistd.h>
int main() {
int i = 0;
while(i < 10) {
sleep(1);
printf("%d\n", i);
i++;
}
return 0;
}
Esse é um contator progressivo que vai de 0 á 10, a biblioteca unistd é usada na função sleep para dar uma pausa de um segundo.
#include <stdio.h>
int main() {
int i = 0;
do {
if (i % 2 == 1) {
printf("Even\n");
} else {
printf("Odd\n");
}
i++;
} while (i < 20);
return 0;
}
Esse código é o do while, ele verifica o intervalo de 0 á 20 se é par ou impar, o do while executara pelo menos uma vez a condição.
#include <stdio.h>
int main() {
for (int i = 0; i < 100; i++) {
printf("%d\n", i);
}
return 0;
}
Esse é um loop for, o loop for deve ser usada para iterar uma lista, não é recomendado usar em contextos comuns.
#include <stdio.h>
int main() {
int matrix[] = {10, 15, 14, 14, 90, 34, 10};
printf("Firts Element: %d\nSecond Element: %d\n", matrix[0], matrix[1]);
return 0;
}
Array são muito importantes, agora vamos aprender a iterar um Array.
#include <stdio.h>
#include <stdlib.h>
int main() {
int matrix[] = {10, 15, 14, 14, 90, 34, 10};
int size = sizeof(matrix) / sizeof(matrix[0]);
for (int i = 0; i < size; i++) {
printf("%d\n", matrix[i]);
}
return 0;
}
Esse código itera o Array, esse é o jeito mais tradicional em C de iterar em um array, incluímos a biblioteca stdlib para ter acesso sizeof que é uma função para saber o tamanho de um conteúdo, tipo ou variável.
#include <stdio.h>
int main() {
const char* name = "Gatóli";
printf("Hi %s!", name);
return 0;
}
Para declarar uma string você deve usar essa sintaxe, evite de mudar um string e use sempre uma string como uma constante, para imprimir uma string use %s como formatador.
Agora vamos fazer um exercício simples, vai pedir dois números na tela e vai somar
#include <stdio.h>
int main() {
int x, y, sum;
printf("X-> ");
scanf("%d", &x);
printf("Y-> ");
scanf("%d", &y);
sum = x + y;
printf("%d + %d = %d", x, y, sum);
return 0;
}
Esse é um exemplo simples de código, mas vamos implantar um sistema simples de erro, quando alguém digita algo que não seja texto o programa pare.
#include <stdio.h>
int main() {
int x, y, sum;
printf("X-> ");
if (scanf("%d", &x) != 1) {
perror("Enter a Number!\n");
return -1;
}
printf("Y-> ");
if (scanf("%d", &y) != 1) {
perror("Enter a Number!\n");
return -1;
}
sum = x + y;
printf("%d + %d = %d", x, y, sum);
return 0;
}
Esse código adiciona o tratamento de erros, na maioria das funções se ter dado tudo certo ela retorna 1 senão ele pode retornar 0, -1 ou qualquer outro número.
#include <math.h>
#include <stdio.h>
float my_tan(float angle) {
return sin(angle) / cos(angle);
}
float to_rad(float angle) {
return angle * 3.14 / 180
}
int main() {
printf("%f\n", my_tan(to_rad(45)));
}
Esse é um exemplo de tipo de função em C que retorna a tangente de um número que é seno do ângulo divido pelo cosseno do número e converte para radianos.
#include <stdio.h>
void hi(const char* name) {
printf("Hi %s!\n", name);
}
int main() {
hi("Ana");
}
Uma simples função sem retorno, uma função sem retorno pode ser útil em casos.
Esse foi um simples tutorial de C, trouxe o básico da linguagem, não abordei assuntos avançados como ponteiros e tipos de dados abstratos, mas se interessou pela linguagem você pode achar bastante conteúdo na internet.
Espero que tenham gostado do meu mini guia de C!