Notes From CS Undergrad Courses FSU
This project is maintained by awa03
Some C++ Only Features
try, catch, throw
)new
and delete
for dynamic memory managementThe c style implementation of libraries look like
# include <stdio.h>
There are 4 diffrent styles of casting (static, dynamic, const, and reinterpreted casts)
Declerations
const
or a literal. The size of an array may not be variableint size =100;
int list[size];
- Would NOT work
int list[100];
- Would work
Unlike c++, C requires variable declarations at the top of the functions This means that, ALL variables should be declared at the beginning of the function
for (int i=0; i< 10; i++){} // wrong
int i;
for(i = 0; i < 10; i++){} // correct
Standard I/O streams
stdin::
input stream
stdout::
output stream
stderr::
error stream
Streams are sequences of characters flowing from one place to another
stdio.h
- contains basic I/O functions
Formatied I/O - refers to the conversion of data to and from a stream of characters for printing
scanf:
- Reads from standard input (stdin)
printf:
- writes to standard input (stdout)
Output with printf
printf (format_string, list_of_expressions);
Specifier | Purpose |
---|---|
%d | int (signed decimal int) |
%u | unsigned decimal int |
%f | floating point (fixed notation) |
%e | floating point (exponential notation) |
%s | string |
%c | char |
%x | Hexidecimal number |
printf(%10d)
- for 10 spaces
Using scanf basics
scanf (format_string, list_of_variable_addresses)
printf
int month, day;
printf("Please enter birth month, followed by birthday");
scanf(%d %d, &month, &day);
Conversion Specifiers
C Strings
char word1[20];
scanf("%s", word1
);`
char greeting[] = "Hello";
printf("%s", greeting); // Prints the word
Output: "Hello"
scanf("%25[^*]*%s", str1, str2);
C-Strings dont need the address because the name acts as a pointer to the array
Structs and enums
We can define a new type in C using
typedef
typedef struct student {
char name[20];
double gpa;
} Student; // now the new type name
struct student s1; // C declaration using "tag"
Student s2; // C declaration using new type name
For an arrau of the line strict, which has been typedef'ed is:
line * arr = (line*) malloc (size_of_array * sizeof(line));
[[Computer Science Notes/CDA 3100/Index|Index]]