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

De binefa.com
Salta a la navegació Salta a la cerca
m
 
Línia 84: Línia 84:
 
  '''|''' '''o''' a nivell de byte
 
  '''|''' '''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ó ==

Revisió de 15:29, 23 set 2022

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

Tipus de variables

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

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

Operadors aritmètics:

- 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 (~)

#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ó

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

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

Operadors relacionals

== 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

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

Altres operadors

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

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

Jerarquia de les operacions

Conversions de tipus implícites i explícites (casting)

Sentències

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

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

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.