Programar em C/Estudo: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
EvertonS (discussão | contribs)
→‎Começar a programar em C: já esta explicado ou reescrito na pagina "Entrada e saída simples"
EvertonS (discussão | contribs)
→‎Declarando variáveis: já esta no livro programar em C na pagina variáveis ,as palavras reservadas também já tem uma pagina
Linha 3:
== Programação em C ==
Manual autodidata
 
== Declarando variáveis ==
 
Vai-nos ocorrer a necessidade do programa guardar certos valores. Assim vamos querer declarar uma variável para depois guardar um valor e mais tarde poder ser utilizado a sua forma geral é:
tipo_da_variável lista_de_variáveis;
 
Para poder declarar uma variável podemos escrever
int a;
 
Neste caso apenas estamos a declarar uma variável que chamamos “a”.
 
O que é que está a acontecer? Estamos a pedir ao computador para reservar um espaço da sua memória. e que depois associe esse espaço de memória ao nome “a”. Assim o computador tem de saber onde aloca as coisas. É como tivéssemos um quadro de duas colunas, uma para os nomes e outra para o valor.
a = 5;
 
Neste caso estamos a fazer com que o computador guarde o valor 5 no espaço alocado à variável a;
 
Como primeiro pedimos para reservar memória e depois escrevemos o valor, por isso é que temos que dizer o quanto espaço de memória é que deve ser reservado daí o int antes de a;
 
Agora o que aconteceria se puséssemos a=5,555.. não sei qual é que seria o resultado. Mas ou não compilaria, ou se isso acontecesse estaríamos a alocar mais memória do que pedimos e portanto poderia acontecer estarmos a escrever em memória que pertencia a outro programa, logo podemos estar a corromper os nossos dados, penso que não é coisa que se queira.
 
Podemos declarar uma variável ao mesmo tempo que lhe damos um valor, por exemplo:
int a = 5;
 
Podemos ainda declarar quantas variáveis queiramos ao mesmo tempo;
int a, b, c, d;
 
Têm é que ter as vírgulas no meio e ponto e virgula no final
 
Podemos declarar várias variáveis ao mesmo tempo e associar os respectivos valores?
int a = 5, b = 6;
 
Também podemos fazer isso, não esquecer as vírgulas.
 
* Lembre-se sempre que é necessário declarar a variável antes de atribuirmos um valor, caso contrário esse valor irá para um sítio qualquer na memória e é bem possível alterar uma memória já atribuída.
* E declarar a variável antes de utilizarmos.
* O nome das variáveis terão de ser únicas, como é lógico.
* Há diferença entre termos maiúsculas e minúsculas (pois elas têm um valor diferente no código ASCII) logo ter – nome e NOME ou mesmo Nome são todas variáveis diferentes. O C é ''case sensitive''
* Por fim não podem ter o nome das palavras reservadas que são os nomes das funções e tipologia, (ver quadro)
* Utiliza-se as letras números e o sublinhado (_)
* Variáveis até 32 caracteres são aceites
* é pratica comum usar letras minúsculas para nomes de variáveis e maiúsculas para nomes de constantes.
 
=== Palavras Reservadas do C ===
 
for continue break switch else case return goto default do while if
 
struct typedef sizeof union extern enum
 
int double long char float short unsigned void signed
 
const register volatile static auto
 
=== Tipologia de variáveis ===
 
C tem 5 tipos básicos:
# char,
# int,
# float,
# void,
# double
 
Quando declaramos uma variável teremos de indicar de que tipologia a variável é. A razão disto tem a ver que cada tipologia ocupa um número de bits diferentes. e o computador agrega cada tipologia em tabelas distintas, por exemplo, uma para ints outra para floats, etc. ou seja uma das razões é realmente a optimização da memória. mas também existe uma outra razão que tem a ver com as operações. isto é, se tivermos um dado int, e se passarmos para o seguinte nós vamos passar para o próximo int. ou seja asseguramos que o número seguinte é um int.
 
Convém ver a tabela das tipologias.
 
Tipo Num de bits Formato para leitura com scanf Intervalo
Inicio Fim
char 8 %c -128 127
unsigned char 8 %c 0 255
signed char 8 %c -128 127
int 16 %i -32.768 32.767
unsigned int 16 %u 0 65.535
signed int 16 %i -32.768 32.767
short int 16 %hi -32.768 32.767
unsigned short int 16 %hu 0 65.535
signed short int 16 %hi -32.768 32.767
long int 32 %li -2.147.483.648 2.147.483.647
signed long int 32 %li -2.147.483.648 2.147.483.647
unsigned long int 32 %lu 0 4.294.967.295
float 32 %f 3,4E-38 3.4E+38
double 64 %lf 1,7E-308 1,7E+308
long double 80 %Lf 3,4E-4932 3,4E+4932
 
Para os números reais temos as seguintes variantes:
float
double
 
para os inteiros:
int
short int
long int
unsigned
signed
 
== Operações ==