Noise pollution is a significant environmental issue, particularly in industrial settings. The constant hum of machinery, the clanging of metal, and the roar of engines contribute to a cacophony that can have serious health implications for workers and nearby residents. Addressing noise pollution in industries is not only a matter of regulatory compliance but also a crucial step in ensuring the well-being of employees and the community. Understanding Noise Pollution in Industries Industrial noise pollution stems from various sources such as heavy machinery, generators, compressors, and transportation vehicles. Prolonged exposure to high levels of noise can lead to hearing loss, stress, sleep disturbances, and cardiovascular problems. Beyond health impacts, noise pollution can also reduce productivity, increase error rates, and contribute to workplace accidents. Regulatory Framework Many countries have established regulations and standards to limit industrial noise. Organizations like t
Pointers
Every variable in C has a name and a value associated with it. When a variable is declared, a specific block of memory within the computer is allocated to hold the value of that variable. The size of the
allocated block depends on the data type.
Consider the following statement.
int x = 10;
When this statement executes, the compiler sets aside 2 bytes of memory to hold the value 10.
It also sets up a symbol table in which it adds the symbol x and the relative address in the memory where those 2 bytes were set aside.
(Note the size of integer may vary from one system to another. On 32 bit systems, integer variable is allocated 4 bytes while on 16 bit systems it is allocated 2 bytes.)
Thus, every variable in C has a value and also a memory location (commonly known as address) associated with it. We will use terms rvalue and lvalue for the value and the address of the variable, respectively.
The rvalue appears on the right side of the assignment statement (10 in the above statement) and cannot be used on the left side of the assignment statement. Therefore, writing 10 = k; is
illegal. If we write,
int x, y;
x = 10;
y = x;
then, we have two integer variables x and y. The compiler reserves memory for the integer variable x and stores the rvalue 10 in it. When we say y = x, then x is interpreted as its rvalue since it is
on the right hand side of the assignment operator =. Therefore, here x refers to the value stored at the memory location set aside for x, in this case 10. After this statement is executed, the rvalue
of y is also 10.
You must be wondering why we are discussing addresses and lvalues. Actually pointers are nothing but memory addresses. A pointer is a variable that contains the memory location of another
variable. Therefore, a pointer is a variable that represents the location of a data item, such as a variable or an array element. Pointers are frequently used in C, as they have a number of useful applications. These applications include:
* Pointers are used to pass information back and forth between functions.
* Pointers enable the programmers to return multiple data items from a function via function
arguments.
* Pointers provide an alternate way to access the individual elements of an array.
* Pointers are used to pass arrays and strings as function arguments. We will discuss this in subsequent chapters.
* Pointers are used to create complex data structures, such as trees, linked lists, linked stacks, linked queues, and graphs.
* Pointers are used for the dynamic memory allocation of a variable (refer Appendix A on memory allocation in C programs).