Institucional

  • Sobre nós
  • Trabalhe Conosco
  • Para Empresas
  • Para Escolas
  • Política de Privacidade
  • Compromisso de Integridade
  • Termos de Uso
  • Canal de Ética
  • Código de Ética
  • Fale Conosco
  • Documentos Institucionais
  • Status
Institucional
  • Sobre nós
  • Trabalhe Conosco
  • Para Empresas
  • Para Escolas
  • Política de Privacidade
  • Compromisso de Integridade
  • Termos de Uso
  • Canal de Ética
  • Código de Ética
  • Fale Conosco
  • Documentos Institucionais
  • Status

A Alura

  • Como Funciona
  • Inteligência Artificial
  • Plataforma
  • Depoimentos
  • Instrutores(as)
  • Dev em <T>
  • Luri, a Inteligência Artificial da Alura
  • IA Conference
  • Cursos Imersivos
  • Perguntas Frequentes
A Alura
  • Como Funciona
  • Inteligência Artificial
  • Plataforma
  • Depoimentos
  • Instrutores(as)
  • Dev em <T>
  • Luri, a Inteligência Artificial da Alura
  • IA Conference
  • Cursos Imersivos
  • Perguntas Frequentes

Conteúdos

  • Alura Cases
  • Imersões
  • Artigos
  • Podcasts
  • Artigos de educação corporativa
Conteúdos
  • Alura Cases
  • Imersões
  • Artigos
  • Podcasts
  • Artigos de educação corporativa
Uma Empresa do GrupoLogo Grupo Alun

Outras empresas do Grupo Alun

  • FIAP
  • STARTSE
  • PM3
  • LUMINA

Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

Redes Sociais & Apps

instagram
youtube
tiktok
x
appStore
googlePlay
Uma Empresa do GrupoLogo Grupo Alun

Outras empresas do Grupo Alun

  • FIAP
  • STARTSE
  • PM3
  • LUMINA

Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

Redes Sociais & Apps

instagram
youtube
tiktok
x
appStore
googlePlay
Alura
  • Home

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    CURSOS

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    CURSOS

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    CURSOS

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    CURSOS

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    CURSOS

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    CURSOS

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    CURSOS

    Ver mais cursos de Inovação e Gestão
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    CURSOS

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    CARREIRAS

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    CURSOS

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    CURSOS

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    CURSOS

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre multiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA
  • Artigos
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Carreiras

    Ver todas
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA
    Entrar Ver Planos
  • Área de Interesse

    Entrar Ver Planos
  • Aulas ao Vivo - Skills & Go

    • Agentic Engineering: orquestre multiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA
    Entrar Ver Planos
  • Senioridade

    Entrar Ver Planos
  • Eventos Alura

    • IA Conference
    • Alura Signals
    Entrar Ver Planos
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Artigos
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • Plano Pro 24
    • Plano Plus 24
    • Plano Ultra Lab 24
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Back-end
    3. Começando a programar com C

    Começando a programar com C

    6 min6 minutos de leitura

    6 min6 minutos de leitura

    Publicado: 11/03/2019

    1. Olá, mundo! E algumas coisas a mais
    2. A função principal
    3. Para saber mais

    Imagem de destaque #cover

    Quando vamos começar a estudar programação, nos deparamos com diversas linguagens de programação. Qual delas devemos aprender primeiro?

    Independente da linguagem de programação, todas elas têm ao menos uma coisa em comum: a lógica. Não importa a linguagem que escolhemos para começar, a lógica executada será a mesma. Claro, talvez os passos para realizar essas tarefas sejam diferentes, pois cada linguagem tem uma sintaxe diferente.

    Em meio tantas linguagens de programação, uma muito popular é a linguagem C.

    A linguagem C é uma das linguagens mais utilizadas nos dias de hoje, e serviu como base para diversas outras linguagens, como C++, C#, Java, PHP, Javascript, entre algumas outras. Mas como podemos escrever um programa em C?

    Olá, mundo! E algumas coisas a mais

    Temos que começar a escrever nosso código que será o nosso programa em C. Para isso, podemos utilizar qualquer editor de textos. Precisamos falar para o computador que esse é um arquivo da linguagem C, para isso, colocamos a extensão .c:

    Temos o arquivo criado, agora o que colocamos nele? Que comandos passamos para o computador começar a executar ações?

    Vamos falar para o C imprimir (printf) uma mensagem para a gente no vídeo:

    
    printf("Ola, Alura!");
    

    Demos nossa instrução para o C. Falamos para ele imprimir um texto. O C pede que todo texto, também chamado de string, deve estar entre aspas duplas e toda instrução deve terminar com ponto e vírgula.

    Esse código que escrevemos em C é um código legível por seres humanos. Isto é, uma pessoa consegue ler esse código sem muitos problemas. Contudo, o computador não entende essa linguagem.

    Temos que transformar essa linguagem que nós escrevemos para uma linguagem que o computador consiga entender. Esse processo de transformação de um código de uma linguagem de programação em código de máquina é chamado de compilação.

    Quando compilamos um código, o compilador pega nosso código, neste caso escrito em C, e transforma para uma linguagem que a máquina entenda. Existem alguns compiladores disponíveis, como estou utilizando um Linux, vou utilizar o GCC, que já vem por padrão na maioria das distribuições.

    gcc ola-mundo.c

    Não conseguimos compilar o código. O GCC retornou um erro quando tentamos. Por que isso aconteceu?

    Nós pedimos para o C escrever um texto na tela, mas onde falamos para ele onde está essa instrução printf?

    Nós queremos falar para o C usar uma instrução que realiza a saída dos dados. Isto é, mostrar uma mensagem na tela. Então precisamos mostrar pra ele de qual lugar essa função está vindo, isto é, de qual biblioteca ela vem.

    No caso, a função printf vem da biblioteca padrão de entrada e saída de dados, a stdio.h. Para utilizar, basta pedir para o C incluí-la (include) no nosso arquivo:

    
    #include <stdio.h>
    printf("Ola, Alura!");
    

    Bacana, se tentarmos compilar nosso programa veremos o mesmo erro:

    Mas incluímos a biblioteca que tem a função printf, então por que esse erro continua?

    Todo programa em C quando vai ser executado, precisa de uma função principal (main). Essa função indica qual o ponto de entrada no programa. Como queremos que o nosso printf apareça quando o programa rodar, precisamos declará-lo dentro da função main. Mas como declaramos essa função?

    Banner da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    A função principal

    Como todo programa em C tem a função main, o C padronizou o estilo que declaramos essa função. Basta colocarmos int main() { … } e pronto! Temos a função principal. Tudo que estiver entre as chaves ({ }) será executado linha a linha quando o programa começar:

    
    #include <stdio.h>
    int main() {
        printf("Ola, Alura!");
    }
    

    Agora podemos pedir para o GCC compilar nosso arquivo sem receber um erro:

    Legal, nosso arquivo está compilado! Agora, basta executá-lo. Mas como executar esse arquivo?

    Como pedimos para o GCC apenas compilar esse arquivo, ele gera um nome automaticamente para o arquivo compilado. No meu caso esse nome é a.out:

    Podemos falar para o computador executar esse código para a gente digitando ./ seguido do nome do arquivo:

    Bacana! Conseguimos imprimir nossa mensagem na tela! Agora podemos ir aprendendo outras funcionalidades da linguagem. :)

    Para saber mais

    O sinal de porcentagem que apareceu no final da frase, indica que naquele lugar acabou a string, isto é, acabou a frase que passamos para o printf. Como essa instrução não tinha uma quebra de linha, o meu **terminal inseriu **ela. Mas isso não é um comportamento padrão do programa.

    O comum é que a linha não seja quebrada. Para colocar esse comportamento de quebra de linha como padrão, precisamos falar que no final da nossa frase, o printf imprima também uma linha nova (\n):

    
    #include <stdio.h>
    int main() {
        printf("Ola, Alura!\n");
    }
    

    Quando compilamos e rodamos o arquivo, veremos que o sinal de porcentagem sumiu, pois a quebra de linha está explícita agora:

    Nestes casos, o compilador está nomeando nosso arquivo de saída. Mas se nós quisermos, podemos passar um nome para o arquivo que será compilado. Basta falarmos para o compilador gerar a saída (-o) para o arquivo ola-mundo.out, por exemplo:

    gcc ola-mundo.c -o ola-mundo.out

    Uma coisa que precisamos nos atentar é que quando declaramos a função main, colocamos a palavra int antes. Essa palavra indica o tipo de retorno de uma função. Ou seja, quando digitamos o int main(), falamos que a nossa função retorna um número inteiro. Contudo onde indicamos esse retorno?

    Em alguns compiladores, quando nós compilássemos nosso código ele geraria um aviso (Warning) falando que a função main não tem valor de retorno. Isso não impediria o programa de rodar, mas não é considerada uma boa prática.

    Ou seja, o legal é que a nossa função main retorne um número falando que sua execução ocorreu sem nenhum problema. Por convenção, este número é o 0. Logo, podemos falar para a main retornar o número zero quando ela executar tudo que precisa:

    
    #include <stdio.h>
    int main() {
        printf("Ola, Alura!\n");
    
    return 0;
    
    
    

    }

    O C é uma linguagem muito utilizada até hoje. Ela tem uma capacidade de processamento muito alta.

    Aqui na Alura, temos três cursos na linguagem. Em cada um deles você criará jogos que ajudarão a conhecer as funcionalidades da linguagem.

    Também temos um curso sobre a linguagem C na Alura Start. Nele você também conhecerá as funcionalidades da linguagem. Além do curso de C, temos cursos que te mostrarão como utilizar os recursos da linguagem em desafíos da Olimpíada Brasileira de Informática. Nele você verá como utilizar o C para criar algoritmos e se preparar para a olimpíada.

    Banner da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    Avalie este artigo

    Foto de Yuri Matheus

    Autor(a)

    Yuri Matheus

    Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

    Explore por tópico

    • Mobile
    • Back-end
    • Front-end
    • DevOps
    • UX & Design
    • Dados
    • Gestão & Negócios
    • Inteligência Artificial
    • Cibersegurança
    • Cloud

    Leia também

    • 26/03/2012

      Java EE versus Spring: retomando a discussão

      Ler mais
    • 24/09/2018

      PCA em Python: Visualizando dados em 5d

      Ler mais
    • Alura
      04/07/2017

      JavaScript, debounce pattern, closure e duas amigas

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.