C memory managmentBasics
Variables & Basic Types
Variables & Basic Types in C language
Basic Types in C
int
- An integer number (e.g.,42
,-7
,1337
).float
- A floating-point number, used for decimals (e.g.,3.14
,0.007
).char
- A single character, written with single quotes (e.g.,'A'
,'Z'
,'#'
).char *
- A pointer to a sequence of characters (a string), written with double quotes (e.g.,"Hello"
,"C programming"
).
#include <stdio.h>
int main() {
int cool_number = 73;
char z_letter = 'Z';
float pi = 3.14;
char *bare = "Bare Metal";
printf("Cool number: %d\n", cool_number);
printf("Letter here: %c\n", z_letter);
printf("Pi number: %f\n", pi);
printf("%s\n", bare);
return 0;
}
Printing Variables
We have to tell C how we want particular values to be printed using "format specifiers".
Common format specifiers are:
%d
- digitinteger
.%c
- character.%f
- floating point number.%s
- stringchar *
.
In C, the newline character \n
is used to move the cursor to the beginning of
the next line.
#include <stdio.h>
int main() {
char * name = "agustfricke";
char num_repos = 'Z';
printf("Your GitHub username is %s, and you have %d repositories on GitHub.\n", name, num_repos);
return 0;
}
Compilation - Types
In C, changing the type of an existing variable is not allowed:
int main() {
char *port = "22";
port = 22; // error ■ Incompatible integer to pointer conversion assigning to 'char *' from 'int'
}
However, a variable's value can change:
int main() {
int port = 22;
port = 80; // ok
port = 443; // still ok
}
#include <stdio.h>
int main() {
int port = 22;
port = 80;
printf("%d is the http port\n", port);
return 0;
}
Constants
So a variable's value can change:
int main() {
int age = 19;
age = 20; // this is ok
}
But what if we want to create a value that can't change? We can use the const type qualifier.
int main() {
const int pi = 3.14;
x = 4.13; // error
}