Diferència entre revisions de la pàgina «Introducció a C - 2a part»

De binefa.com
Salta a la navegació Salta a la cerca
 
(Hi ha 6 revisions intermèdies del mateix usuari que no es mostren)
Línia 2: Línia 2:
  
 
= Tipus de variables =
 
= Tipus de variables =
 +
Tipus enters (sense decimals):
 
{|| class="wikitable"
 
{|| class="wikitable"
 
|'''Tipus'''
 
|'''Tipus'''
Línia 38: Línia 39:
 
|4
 
|4
 
| 0 a 4.294.967.295
 
| 0 a 4.294.967.295
 +
|}
 +
 +
Amb decimals:
 +
{|| class="wikitable"
 +
|'''Tipus'''
 +
|'''Bytes            '''
 +
|'''Ventall de valors'''
 +
|'''Precisió'''
 
|-
 
|-
 
|float
 
|float
 
|4
 
|4
 
| 3.4 E-38 a 3.4 E+38 (i els negatius)
 
| 3.4 E-38 a 3.4 E+38 (i els negatius)
 +
|6 decimals
 
|-
 
|-
 
|double
 
|double
 
|8
 
|8
 
| 1.7 E-308 a 1.7 E+308 (i els negatius)
 
| 1.7 E-308 a 1.7 E+308 (i els negatius)
 +
|15 decimals
 +
|-
 +
|long double
 +
|10 (o 12)
 +
| 3.4E-4932 to 1.1E+4932 (i els negatius)
 +
|19 decimals
 
|}
 
|}
 +
 +
[https://www.tutorialspoint.com/cprogramming/c_data_types.htm C - Data Types]
  
 
= Constants =
 
= Constants =
Línia 63: Línia 81:
 
  '''/''' Divisió
 
  '''/''' Divisió
 
  '''%''' Residu (residu de la divisió entera)
 
  '''%''' Residu (residu de la divisió entera)
  '''&''' '''i''' a nivell de bit
+
  '''&''' '''i''' a nivell de byte
  '''|''' '''o''' a nivell de bit
+
  '''|''' '''o''' a nivell de byte
 
  '''~''' Negador a nivell de bit
 
  '''~''' Negador a nivell de bit
 +
=== Difeència entre el negat de byte (!) i el negat de bit (~) ===
 +
#include <stdio.h>
 +
 +
int main(){
 +
    unsigned short int nN = 23,nP,nB;
 +
   
 +
    nP = !nN; // ! negat a nivell de byte
 +
    nB = ~nN; // negat a nivell de bit
 +
   
 +
    printf("nN = %d, nP = %d, nB = %d\n",nN,nP,nB);
 +
 +
    return 0;
 +
}
 +
 
== Operadors d'assignació ==
 
== Operadors d'assignació ==
 
  nom_variable '''=''' expressió;
 
  nom_variable '''=''' expressió;
Línia 106: Línia 138:
 
== Sentències compostes ==
 
== Sentències compostes ==
 
'''Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}'''. Una sentència composta també es coneix amb el nom de bloc.
 
'''Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}'''. Una sentència composta també es coneix amb el nom de bloc.
 
+
<!--
 
= Directives del preprocessador: '''#include''' i '''#define''' =
 
= Directives del preprocessador: '''#include''' i '''#define''' =
 
= Funcions =
 
= Funcions =
 
== Declaració de funcions ==
 
== Declaració de funcions ==
 
== Implementació de funcions ==
 
== Implementació de funcions ==
 +
-->

Revisió de 15:29, 23 set 2022

Al resum teòric del mòdul 2 del d97 destaquem:

Tipus de variables[modifica]

Tipus enters (sense decimals):

Tipus Bytes Ventall de valors
char 1 -128 a 127
unsigned char 1 0 a 255
short int 2 -32768 a 32767
unsigned short int 2 0 a 65535
int 4 -2.147.483.648 a 2.147.483.647
unsigned int 4 0 a 4.294.967.295
long int 4 -2.147.483.648 a 2.147.483.647
unsigned long int 4 0 a 4.294.967.295

Amb decimals:

Tipus Bytes Ventall de valors Precisió
float 4 3.4 E-38 a 3.4 E+38 (i els negatius) 6 decimals
double 8 1.7 E-308 a 1.7 E+308 (i els negatius) 15 decimals
long double 10 (o 12) 3.4E-4932 to 1.1E+4932 (i els negatius) 19 decimals

C - Data Types

Constants[modifica]

12312 constant tipus int
54154551145 constant no vàlida
54154551145. constant tipus double
1.25f constant tipus float
1.25l constant tipus long double

Operadors[modifica]

Operadors aritmètics:[modifica]

- Canvia el signe  (és un operador unari, és a dir, actua només sobre un operant)
+ Suma 
- Resta
* Producte
/ Divisió
% Residu (residu de la divisió entera)
& i a nivell de byte
| o a nivell de byte
~ Negador a nivell de bit

Difeència entre el negat de byte (!) i el negat de bit (~)[modifica]

#include <stdio.h>

int main(){
   unsigned short int nN = 23,nP,nB;
   
   nP = !nN; // ! negat a nivell de byte
   nB = ~nN; // negat a nivell de bit
   
   printf("nN = %d, nP = %d, nB = %d\n",nN,nP,nB);

   return 0;
}

Operadors d'assignació[modifica]

nom_variable = expressió;
a = a+1;
a += b significa a = a + b
a -= b significa a = a – b
a *= b significa a = a * b
a /= b significa a = a / b
a %= b significa a = a % b

Operadors incrementals[modifica]

a = 2;
b = a++;              /* a = 3 i b = 2 */
b = ++a;              /* a = 3 i b = 3 */

Operadors relacionals[modifica]

== Igual que (no confondre amb l'operador d'assignació =)
<  Menor que
>  Major que
<= Menor o igual que
>= Major o igual que
!= Diferent que

Operadors lògics[modifica]

! Negador a nivell de valor lògic (0 es fals. Qualsevol altra número és cert)
&& i lògica
|| o lògica

Altres operadors[modifica]

unari: + no fa res, però serveix com a complement de l'operador unari -.
sizeof(): torna la mida del tipus, variable o expressió introduït com argument.
, (coma): serveix per avaluar expressions múltiples. El seu ús més freqüent és en expressions de la sentència for.

Expressions[modifica]

(a-b*2.0)||(c!=a)

Jerarquia de les operacions[modifica]

Conversions de tipus implícites i explícites (casting)[modifica]

Sentències[modifica]

Una sentència en C és una unitat executable com pot ser una assignació o una crida a una funció. Una sentència pot ser simple o composta.

Sentències simples[modifica]

Les sentències simples acaben amb el caràcter ; (punt i coma).

Sentències compostes[modifica]

Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}. Una sentència composta també es coneix amb el nom de bloc.