Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Conceitos básicos de programação em C++: variáveis, operadores e ponteiros, Notas de estudo de Programação em C

Este documento fornece uma introdução aos conceitos básicos de programação em c++, incluindo a declaração e inicialização de variáveis, operadores aritméticos e lógicos, atribuição composta, ponteiros e passagem de parâmetros para funções. Também aborda a criação de funções com parâmetros e valores padrão, além de demonstrar a criação e manipulação de arrays e objetos especiais como new e nothrow.

Tipologia: Notas de estudo

2020

Compartilhado em 25/06/2020

isadora-martimiano-9
isadora-martimiano-9 🇧🇷

5

(2)

11 documentos

1 / 93

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Campus de Ilha Solteira
Faculdade de Engenharia de Ilha Solteira
Departamento de Engenharia Elétrica
Av. Prof. José Carlos Rossi, 1370 CEP 15385-000 Ilha Solteira São Paulo Brasil
Tel (18) 3743-1150 fax 18 3743-1163 email: [email protected]r
Material de apoio
Curso de C/C++
DINTER
21 a 25 de fevereiro de 2011
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d

Pré-visualização parcial do texto

Baixe Conceitos básicos de programação em C++: variáveis, operadores e ponteiros e outras Notas de estudo em PDF para Programação em C, somente na Docsity!

Campus de Ilha Solteira

Faculdade de Engenharia de Ilha Solteira Departamento de Engenharia Elétrica Av. Prof. José Carlos Rossi, 1370 CEP 15385-000 Ilha Solteira São Paulo Brasil Tel (18) 3743-1150 fax 18 3743-1163 email: [email protected]

Material de apoio

Curso de C/C++

DINTER

21 a 25 de fevereiro de 2011

Propriedades do documento Categoria: Apostila Assunto : Linguagem de programação C/C++ Versão : 1.

data elaborado por^1 Waldemar P. Mathias Neto 27.01.

revisado por Fábio Bertequini Leão 06.02.

NOTA: O conteúdo deste documento foi integralmente retirado, traduzido e adaptado de http://www.cplusplus.com/doc/tutorial e outras seções do website http://www.cplusplus.com/. Acesso em: 28 de janeiro de 2011.

  • Capítulo 1: O básico de C++
  • 1.1. A estrutura de um programa
    • 1.1.1 Comentários
  • 1.2 Variáveis. Tipo de dados.
    • 1.2.1 Identificadores..............................................................................................
    • 1.2.2 Tipos fundamentais de dados
    • 1.2.3 Declaração das variáveis
    • 1.2.4 Escopo das variáveis
    • 1.2.5 Inicialização das Variáveis
    • 1.2.6 Introdução às cadeias de caracteres
  • 1.3 Constantes..........................................................................................................
    • 1.3.1 Literais
      • Numerais inteiros
      • Números de ponto flutuante.....................................................................................
      • Caracteres e literais do tipo string
      • Literais booleanas
    • 1.3.2 Constantes definidas (#define)
    • 1.3.3 Constantes declaradas (const)
  • 1.4 Operadores
    • 1.4.1 Atribuição (=)...............................................................................................
    • 1.4.2 Operadores aritméticos ( +, -, *, /, % )
    • 1.4.3 Atribuição composta (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
    • 1.4.4 Incremento e decremento (++, --)
    • 1.4.5 Operadores relacionais e de igualdade ( ==, !=, >, <, >=, <= )
    • 1.4.6 Operadores lógicos ( !, &&, || )
    • 1.4.7 Operador condicional (? )
    • 1.4.8 Operador virgula ( , )
    • 1.4.9 Operadores bit a bit ( &, |, ^, ~, <<, >> )
    • 1.4.10 Operadores de conversão explícita de tipo........................................................
    • 1.4.11 sizeof()
    • 1.4.12 Outros operadores
    • 1.4.13 Precedência dos operadores
  • Capítulo 2: Estruturas de controle
  • 2.1 Estruturas de controle
    • 2.1.1 Estruturas condicionais: if e else
    • 2.1.2 Estruturas de iterações (loops)
      • O loop while (enquanto)
      • O loop do-while (faça-enquanto)
      • O loop for (para)
    • 2.1.3 Instruções de salto
      • O comando break
      • O comando continue
      • O comando goto
      • A função exit..........................................................................................................
    • 2.1.4 A estrutura seletiva: switch
  • 2.2 Funções (Parte I)
    • 2.2.1 Escopo das variáveis
    • 2.2.2 Funções void (sem tipo).................................................................................
  • 2.3 Funções (Parte II)
    • 2.3.1 Argumentos passados por valor e por referência
    • 2.3.2 Parâmetros com valores padrões
    • 2.3.3 Sobrecarga de funções
    • 2.3.4 Recursividade
    • 2.3.5 Declarando funções
  • Capítulo 3: Tipos de dados compostos
  • 3.1 Matrizes
    • 3.1.1 Inicializando matrizes
    • 3.1.2 Acessando valores de uma matriz
    • 3.1.3 Matrizes multidimensionais
    • 3.1.4 Matrizes como parâmetros
  • 3.2 Sequência de caracteres
    • 3.2.1 Inicialização de sequências de caracteres terminada por caractere nulo
    • 3.2.2 Usando uma sequência de caracteres terminada por caractere nulo
  • 3.3 Ponteiros - 3.3.1 O operador referência (&) - 3.3.2 Operador dereferência (dereference)(*) - 3.3.3 Declarando variáveis do tipo ponteiro - 3.3.4 Ponteiros e matrizes - 3.3.5 Inicialização de ponteiros............................................................................ - 3.3.6 Aritmética de ponteiros - 3.3.7 Ponteiros para ponteiros - 3.3.8 Ponteiros void - 3.3.9 Ponteiro nulo - 3.3.10 Ponteiros para funções
  • 3.4 Alocação dinâmica de memória
    • 3.4.1 Operadores new e new[]
    • 3.4.2 Operadores delete e delete[]
  • 3.5 Estruturas de dados
    • 3.5.1 Estruturas de dados
    • 3.5.2 Ponteiros para estruturas
    • 3.5.3 Estruturas aninhadas
  • 3.6 Outros tipos de dados
    • 3.6.1 Tipo de dados definido (typedef)
    • 3.6.2 Uniões (union)
    • 3.6.3 Uniões anônimas...........................................................................................
    • 3.6.4 Enumerações (enum)
  • Anexo A (alguns cabeçalhos e bibliotecas).........................................................................
    • A.1 Algorithms
    • A.2 complex
    • A.3 cmath (math.h)................................................................................................
    • A.4 cstdio (stdio.h).................................................................................................
    • A.5 cstdlib (stdlib.h)
    • A.6 ctime (time.h)..................................................................................................

using namespace std;

Todos os elementos da biblioteca padrão do C++ são

declarados dentro do que é chamado namespace, e o nome

do namespace padrão é std. Para acessar suas

funcionalidades nós declaramos esta expressão. Esta linha de código é muito frequente em programas escritos em C++ que usam a biblioteca padrão.

int main ()

Esta linha corresponde ao início da definição da função main.

A função main é o ponto onde todo programa escrito em C++

inicia sua execução. Não importa qual o número de funções

que um programa contenha antes, ou depois da função main,

ou ainda seus nomes, um programa sempre inicia sua

execução pela função main.

A palavra main é seguida por um par de parênteses (()).

Neste caso trata-se de uma declaração de função: em C++, o que diferencia uma declaração de função de outro tipo de expressão são os parênteses após seu nome. Opcionalmente, estes parênteses podem conter uma lista de parâmetros.

Logo após os parênteses encontramos o corpo do programa. O

corpo do programa é apresentado entre duas chaves ({}). O

conteúdo incluído dentro das chaves é o que será executado e onde nós iremos escrever o código do programa.

cout << "Hello World!";

Esta linha é uma declaração. A declaração é uma expressão simples ou composta que possa realmente produzir algum efeito. Na verdade, esta afirmação só executa a ação que gera um efeito visível no nosso primeiro programa.

cout é o nome do comando de saída padrão em C ++. O

resultado desta declaração é inserir uma sequência de

caracteres (“Hello Word”) na tela.

cout é declarado no arquivo padrão iostream dentro do

namespace std. É por isso que nós precisamos incluir esse

arquivo específico e declarar que usaremos este espaço para nome específico no início do nosso código.

Observe que esta instrução termina com um caractere ponto e

vírgula (;). Este é usado para marcar o final da instrução e,

na verdade ele deve ser incluído ao final de todas as declarações em todos os programas C++ (um dos erros de sintaxe mais comum é de fato esquecer-se de incluir o ponto e vírgula depois de uma instrução).

return 0;

A instrução return faz com que a função main termine.

return pode ser seguido por um código de retorno (no nosso

exemplo é seguido pelo código de retorno com um valor de

zero). Um código de retorno de 0 para a função main é

geralmente interpretado como um correto e esperado funcionamento do programa, sem quaisquer erros durante sua

execução. Esta é a forma mais usual para encerrar um programa em C++. Você deve ter notado que nem todas as linhas deste programa executam ações quando o código é executado. Há linhas contendo apenas comentários (aquelas que começam por //) e linhas com as diretivas para o compilador do pré-processador (aquelas iniciadas por #). Em seguida, linhas que iniciam a declaração de uma função (neste caso, a função principal) e, finalmente, as linhas com as declarações (como a linha 7), que foram incluídas dentro do bloco delimitado

pelas chaves ({}) da função main.

O programa foi estruturado em duas linhas diferentes, a fim de ser mais legível, mas em C++, não temos regras rígidas sobre como separar instruções em linhas diferentes. Por exemplo, em vez de

int main (){

cout << " Hello World!";

return 0;

Poderíamos ter escrito:

int main () { cout << "Hello World!"; return 0; }

Tudo isso em apenas uma linha tem exatamente o mesmo significado que o código anterior.

Em C++, a separação entre as afirmações é especificada com um ponto e vírgula (;) no final de

cada sentença. Portanto a separação em diferentes linhas de código não importa para essa finalidade. Podemos escrever muitas declarações por linha ou escrever uma única instrução que tenha muitas linhas de código. A divisão do código em linhas diferentes é um recurso para tornar mais legível o código para os seres humanos.

Vamos adicionar uma instrução para o nosso primeiro programa:

// my second program in C++

#include

using namespace std;

int main (){

cout << "Hello World! ";

cout << "I'm a C++ program";

return 0;

Hello World! I'm a C++ program

Neste caso, são realizadas duas declarações do comando cout em duas linhas diferentes. Mais

uma vez, a separação em diferentes linhas de código é feita apenas para dar maior legibilidade

ao programa. A função main poderia ter sido escrita perfeitamente desta maneira:

int main () { cout << " Hello World! "; cout << " I'm a C++ program ";

return 0; }

1.2 Variáveis. Tipo de dados.

A utilidade dos programas "Hello World!" mostrados na seção anterior é bastante questionável. Tínhamos que escrever várias linhas de código, compilá-los, e depois executar o programa resultante apenas para obter uma simples frase escrita na tela como resultado. Certamente teria sido muito mais rápido digitar a frase de saída nós mesmos. No entanto, a programação não se limita apenas à impressão simples de textos na tela. Para ir um pouco mais adiante e tornarmos capazes de escrever programas que executam tarefas úteis que realmente irão nos poupar trabalho é necessário introduzir o conceito de variável.

Vamos imaginar que eu peça que você mantenha o número 5 em sua memória, e então eu peça para você memorizar também o número dois, ao mesmo tempo. Você tem apenas dois valores armazenados em sua memória. Agora, se eu pedir para você adicionar 1 ao primeiro número que eu disse, você deve manter o número 6 (que é 5 +1) e 2 em sua memória. Valores que nós poderíamos agora, por exemplo, subtrair e obter 4 como resultado.

O processo que você fez apenas com sua memória é semelhante ao que um computador pode fazer com duas variáveis. O mesmo processo pode ser expresso em C++ com a seguinte instrução:

a = 5;

b = 2;

a = a + 1;

result = a - b;

Obviamente, este é um exemplo muito simples, uma vez que só tenho usado dois valores inteiros pequenos, mas considere que o computador pode armazenar milhões de números como estes, ao mesmo tempo sofisticado e realizar operações matemáticas com elas.

Portanto, podemos definir uma variável como uma parte da memória do computador destinada a armazenar um determinado valor.

Cada variável precisa de um identificador que o distingue dos demais. Por exemplo, no código

anterior os identificadores de variáveis eram a, b e result. No entanto, poderíamos ter

atribuído qualquer nome às variáveis, desde que sejam identificadores válidos.

1.2.1 Identificadores

Um identificador válido em C++ é uma sequência de uma ou mais letras, dígitos ou caracteres de sublinhado (). Nem espaços nem sinais de pontuação ou símbolos pode ser parte de um identificador. Somente letras, números e caracteres de sublinhado simples são válidos. Além disso, os identificadores de variável sempre tem que começar com uma letra ou caractere sublinhado (), mas em alguns casos, estes podem ser reservados para determinadas palavras- chave do compilador ou identificadores externos, bem como identificadores contendo dois sucessivos caracteres de sublinhado em qualquer lugar. Em nenhum caso, um identificador pode começar com um dígito.

Outra regra que você deve considerar ao inventar seus próprios identificadores é que eles não podem corresponder a qualquer palavra-chave da linguagem C + + ou do compilador, que são palavras reservadas consideradas especiais. As palavras-chave reservadas padrão são:

asm, auto, bool, break, case, catch, char, class, const, const_cast,

continue, default, delete, do, double, dynamic_cast, else, enum,

explicit, export, extern, false, float, for, friend, goto, if, inline,

int, long, mutable, namespace, new, operator, private, protected, public,

register, reinterpret_cast, return, short, signed, sizeof, static,

static_cast, struct, switch, template, this, throw, true, try, typedef,

typeid, typename, union, unsigned, using, virtual, void, volatile,

wchar_t, while

Além disso, representações alternativas para alguns operadores não podem ser usadas como identificadores, uma vez que são palavras reservadas em algumas circunstâncias:

and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

Seu compilador pode também incluir algumas palavras-chave específicas adicionais.

MUITO IMPORTANTE: A linguagem C++ é "case sensitive". Isso significa que um identificador escrito em letras maiúsculas não é equivalente a outro com o mesmo nome mas escrito em

letras minúsculas. Assim, por exemplo, a variável RESULT não é a mesma que a variável

result ou a variável Result. São três identificadores de variáveis diferentes.

1.2.2 Tipos fundamentais de dados

Durante a programação, nós armazenamos as variáveis na memória do computador, no entanto, o computador tem que saber o tipo de dados que deseja armazenar, pois ele não vai alocar a mesma quantidade de memória para armazenar um simples número, única letra ou um grande número. Eles não vão ser interpretados da mesma maneira.

A memória dos computadores é organizada em bytes. Um byte é a quantidade mínima de memória que pode ser gerenciada. Um byte pode armazenar uma quantidade relativamente pequena de dados: um único caractere ou um inteiro pequeno (geralmente um número inteiro entre 0 e 255). Além disso, o computador pode manipular dados muito mais complexos, agrupando vários bytes, como números longos ou não-inteiros.

Em seguida você tem um resumo dos tipos de dados básicos fundamentais em C++, bem como o intervalo de valores que podem ser representados com cada um:

Name Description Size Range**

char Character or small integer. 1byte signed:^ -128^ to^127

unsigned: 0 to 255

short int

(short)

Short Integer. 2bytes signed:^ -32768^ to^32767 unsigned: 0 to 65535

int Integer. 4bytes

signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295

long int

(long) Long integer.^ 4bytes

signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295

bool Boolean^ value.^ It^ can^ take^ one^ of^ two

values: true or false. 1byte^

true or false

float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits)

double Double precision floating point number. 8bytes +/-^ 1.7e^ +/-^308 (~

digits)

long

double

Long double precision floating point number. 8bytes^

+/- 1.7e +/- 308 (~ digits)

wchar_t Wide character. 2 or^^4

bytes

1 wide character

Por padrão, se não for especificado signed ou unsigned a uma variável, o compilador

assumirá o tipo signed. Portanto poderíamos ter escrito a segunda declaração acima assim:

int MyAccountBalance;

com exatamente o mesmo significado (com ou sem a palavra-chave signed)

Uma exceção a essa regra geral é o tipo de dado char , que existe por si só e é considerado outro

tipo de dado fundamental, diferente de signed char e unsigned char, destinada a

armazenar caracteres. Se você pretende armazenar valores numéricos em uma variável do tipo

char deve usar os especificadores signed ou unsigned.

short e long podem ser usados sozinhos como especificadores de tipo. Neste caso, eles se

referem a seus respectivos tipos inteiros: short é equivalente a short int e long é

equivalente a long int. As duas seguintes declarações de variáveis são equivalentes:

short Year;

short int Year;

Finalmente, signed e unsigned também podem ser usados como especificadores de tipo, e possuem o mesmo significado que signed int e unsigned int , respectivamente. As duas seguintes declarações são equivalentes:

unsigned NextYear;

unsigned int NextYear;

Para ver como as declarações de variáveis aparecem dentro de um programa, vamos observar o código C++ a seguir, sobre o exemplo da memória proposto no início desta seção:

// operating with variables

#include

using namespace std;

int main (){

// declaring variables:

int a, b;

int result;

// process:

a = 5;

b = 2;

a = a + 1;

result = a - b;

// print out the result:

cout << result;

// terminate the program:

return 0;

Não se preocupe se algumas das declarações, além das variáveis, parecem um pouco estranhas para você. Você vai ver o restante das definições em detalhes nas próximas seções.

1.2.4 Escopo das variáveis

Todas as variáveis que pretendemos usar em um programa devem ter sido declaradas com um especificador de tipo em algum ponto anterior no código, como fizemos no código anterior, no início do corpo da função main , quando declaramos a , b , e result do tipo int.

Uma variável pode ser local ou global. Uma variável global é uma variável declarada no corpo principal do código-fonte, fora de todas as funções, enquanto uma variável local é declarada dentro do corpo de uma função específica ou um bloco.

As variáveis globais podem ser referidas em qualquer lugar do código (dentro de funções) sempre após a sua declaração.

O escopo das variáveis locais é limitado ao bloco entre chaves ({}) onde elas são declaradas. Por exemplo, se elas são declaradas no início do corpo de uma função (como na função main ), seu alcance é entre a sua declaração e final dessa função. No exemplo acima, isto significa que, se existisse outra função além da main , as variáveis locais declaradas dentro da função main não poderiam ser acessadas dentro da outra função e vice-versa.

1.2.5 Inicialização das Variáveis

Quando declaramos uma variável, seu valor é, por padrão, indeterminado. Mas você pode querer uma variável para armazenar um valor no mesmo momento em que é declarada. Para fazer isso, você pode inicializar a variável. Há duas maneiras de fazer isso em C++:

O primeiro, conhecido como c- inicialização , é realizada acrescentando um sinal de igual seguido do valor para o qual a variável será inicializada:

type identifier = initial_value ;

int main (){

string mystring = "This is a

string";

cout << mystring;

return 0;

Como você pode ver no exemplo anterior, strings podem ser inicializados com qualquer cadeia

de caracteres válida, como variável do tipo numérica pode ser inicializada com qualquer valor

numérico válido. Ambos os formatos são válidos de inicialização em strings:

string mystring = "This is a string";

string mystring ("This is a string");

Strings também podem executar todas as operações básicas de outros tipos de dados fundamentais como ser declarada sem um valor inicial e atribuir valores durante a execução:

// my first string

#include

#include

using namespace std;

int main (){

string mystring;

mystring = "This is the initial

string content";

cout << mystring << endl;

mystring = "This is a different

string content";

cout << mystring << endl;

return 0;

This is the initial string content

This is a different string content

1.3 Constantes

Constantes são expressões que possuem um valor fixo.

1.3.1 Literais

Literais são os tipos mais óbvios de constantes. Eles são usados para expressar valores específicos dentro do código fonte do programa. Nós já usamos os literais anteriormente para dar valores às variáveis ou para expressar as mensagens que queríamos que nosso programa imprimisse, por exemplo, quando escrevemos:

a = 5;

o 5 ,neste pedaço de código. é uma constante literal.

Constantes literais podem ser divididas em Numerais Inteiros, Numerais de Ponto Flutuante , Caracteres , Strings e Valores Booleanos.

Numerais inteiros

  • 273

Eles são constantes numéricas que identificam valores decimais inteiros. Repare que para expressar uma constante numérica não temos que escrever aspas (") nem qualquer caractere especial. Não há dúvida de que representamos uma constante ao escrever 1776 em um programa, estaremos nos referindo ao valor 1776.

Além de números decimais (aqueles que todos nós estamos acostumados a usar todos os dias), C++ permite o uso de números octais (base 8) e números hexadecimais (base 16) como constantes literais. Se quisermos expressar um número octal temos de precedê-lo com um 0 (um caractere zero ). E a fim de expressar um número hexadecimal temos de precedê-lo com os caracteres 0x (zero, x). Por exemplo, as seguintes constantes literais são todas equivalentes entre si:

75 // decimal

0113 // octal

0x4b // hexadecimal

Todos estes representam o número 75 (setenta e cinco), expresso como uma base-10, octal e hexadecimal, respectivamente.

Constantes literais, como as variáveis, são considerados como um tipo de dado específico. Por

padrão, literais inteiros são do tipo int. No entanto, pode forçar o sistema a ser signed,

anexando o caráter u a ele, ou long, acrescentando l :

75 // int

75u // unsigned int

75l // long

75ul // unsigned long

Em ambos os casos, o sufixo pode ser especificado usando tanto letras maiúsculas quanto minúsculas.

Números de ponto flutuante

Eles expressam números com casas decimais e/ou expoentes. Eles podem incluir um ponto decimal, o caractere e (que expressa "dez elevado a X", onde X é um valor inteiro que segue o caractere e ), ou ambos um ponto decimal e o caractere e :

6.02e23 // 6.02 x 10^

1.6e- 19 // 1.6 x 10^- 19

\f form feed (page feed)

\a alert (beep)

' single quote (')

" double quote (")

? question mark (?)

\ backslash ()

Por exemplo:

'\n'

'\t'

"Left \t Right"

"one\ntwo\nthree"

Além disso, você pode expressar qualquer caractere através de seu código ASCII, escrito por meio de uma barra invertida () seguido do código ASCII expresso como um octal (base 8) ou hexadecimal (base 16). No primeiro caso (octal) os dígitos devem seguir imediatamente a barra invertida (por exemplo, \ 23 ou \ 40), no segundo caso (hexadecimal), um caractere X deve ser escrito antes dos dígitos (por exemplo, \ x20 ou \ x4A ).

Strings podem ser entendidas como mais de uma linha de código ao se colocar uma barra invertida () no final de cada linha que se deseja continuar.

"string expressed in \

two lines"

Você pode também concatenar várias cadeias de caracteres separando-as por um ou vários espaços em branco, tabulações, quebra de linha ou de qualquer outro caractere branco válido:

"this forms" "a single" "string" "of characters"

Literais booleanas

Há apenas dois valores booleanos válidos: o verdadeiro e o falso. Estes podem ser expressos em

C++ como valores do tipo bool, utilizando os literais booleanos true e false.

1.3.2 Constantes definidas (#define)

Você pode definir seus próprios nomes para constantes que você usa muito frequentemente sem ter que recorrer a variáveis, e, consequentemente, consumo de memória, simplesmente usando a diretiva de pré-processamento # define. Seu formato é:

#define identifier value

Por exemplo:

1 #define PI 3.141 59

2 #define NEWLINE '\n'

Isso define duas novas constantes: PI e NEWLINE. Uma vez definidas, você pode usá-las no restante do código como se fosse qualquer outra constante, por exemplo:

// defined constants: calculate

circumference

#include

using namespace std;

#define PI 3.

#define NEWLINE '\n'

int main (){

double r=5.0; // radius

double circle;

circle = 2 * PI * r;

cout << circle;

cout << NEWLINE;

return 0;

Na verdade a única coisa que o pré-processador do compilador faz quando encontra a diretriz # define é, literalmente, substituir qualquer ocorrência de seu identificador (no exemplo anterior, estes eram PI e NEWLINE) pelo código para o qual foram pré-definidos (3,14159 e ' \ n ', respectivamente).

A diretiva #define não é uma diretiva do C++, mas uma diretiva para o pré-processador, desta

forma, como uma diretiva, não necessita de ponto e vírgula (;) ao final da linha. Se você acrescentar um caractere vírgula (;) no final, ele também será anexado em todas as ocorrências do identificador no corpo do programa que o pré-processador substituir.

1.3.3 Constantes declaradas (const)

Com o prefixo const você pode declarar constantes com um tipo específico da mesma forma

como você faria com uma variável:

const int pathwidth = 100;

const char tabulator = '\t';

Aqui, pathwidth e tabulator são duas constantes. Eles são tratados como variáveis

regulares, exceto que seus valores não podem ser modificados após a sua definição.

1.4 Operadores

Uma vez que sabemos da existência de variáveis e constantes, podemos começar a realizar operações com eles. Para isto, a linguagem C++ integra alguns operadores. Diferente de outras