Scroll Progress Bar

'Pass by value' refers to passing a copy of the actual arguments to a function. Any modifications made to the parameters inside the function do not affect the original variables. 'Pass by reference' involves passing the memory address (a pointer) of the actual arguments to the function, allowing modifications to the original variables inside the function.

The 'assert' macro is used for debugging purposes in C. It checks a specified condition during program execution, and if the condition is false, it triggers an assertion failure, which can help identify bugs and unexpected behavior.

'rand' is used to generate a random integer between 0 and 'RAND_MAX'. 'srand' is used to seed the random number generator. By providing a seed value to 'srand', you can ensure that the sequence of random numbers generated is different each time the program runs.

'strcmp' compares two strings until a null character or a difference is found. 'strncmp' compares a specified number of characters (up to a given length) in two strings, allowing you to control the comparison length.

File pointers in C are used to keep track of the current position in a file during input and output operations. They are essential for reading and writing data at specific positions within a file, moving the file pointer, and managing file operations efficiently.

The 'exit' function in C is used to terminate a program and return an exit status to the operating system. By convention, an exit status of 0 indicates a successful execution, while non-zero values indicate errors or abnormal terminations.

'getline' is a standard C library function used to read a line of text from a file stream or standard input. 'gets' is an older, less secure function for reading a line of text from standard input. 'getline' is recommended for safer input handling as it allows you to specify a buffer size to prevent buffer overflows.

Variables declared within a function have 'local scope' and are accessible only within that function. Variables declared outside of any function have 'global scope' and can be accessed by any function in the program. Global variables persist throughout the program's execution.

Recursion is a programming technique where a function calls itself to solve a problem. It's often used for tasks that can be divided into smaller, similar subproblems. Here's an example of a recursive function to calculate the factorial of a number: int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); }

'break' is used to exit a loop prematurely, terminating the loop and moving to the next statement after it. 'continue' is used to skip the current iteration of a loop and jump to the next iteration without exiting the loop.

Dynamic memory allocation in C allows you to allocate memory during program execution. 'malloc' is a standard library function used to allocate a specified amount of memory from the heap. It returns a pointer to the allocated memory, which should be explicitly freed using 'free' to avoid memory leaks.

'Pass by reference' involves passing a pointer to a variable to a function, allowing the function to modify the original variable. This is useful when you need to change the value of a variable within a function and have those changes reflected outside the function.

'const' is used to define read-only variables, indicating that their values cannot be changed after initialization. 'volatile' is used to indicate that a variable's value can change at any time without any action by the code. It prevents the compiler from optimizing away reads or writes to the variable, making it essential for variables accessed by hardware or external factors.

Bitwise operators in C perform operations on individual bits of integers. The main bitwise operators are '&' (bitwise AND), '|' (bitwise OR), '^' (bitwise XOR), '~' (bitwise NOT), '<<' (left shift), and '>>' (right shift). They are used for tasks such as setting or clearing specific bits, checking bit flags, and optimizing code for bit-level operations.

Type casting is the process of converting one data type to another. It's necessary when you want to perform operations between variables of different types or when you need to force the interpretation of a variable's value in a specific way, such as converting an 'int' to a 'float'.