Tutorial Playlist
132 Lessons1. Introduction to C Tutorial
2. Addition of Two Numbers in C
3. Anagram Program in C
4. Armstrong Number in C
5. Array in C
6. Array of Pointers in C
7. Array of Structure in C
8. C Program to Find ASCII Value of a Character
9. Assignment Operator in C
10. Binary Search in C
11. Binary to Decimal in C
12. Bitwise Operators in C
13. Boolean in C
14. C Compiler for Mac
15. C Compiler for Windows
16. C Function Call Stack
17. C Language Download
18. Operators in C
19. C/C++ Preprocessors
20. C Program for Bubble Sort
21. C Program for Factorial
22. C Program for Prime Numbers
23. C Program for String Palindrome
24. C Program to Reverse a Number
25. Reverse a String in C
26. C string declaration
27. String Input Output Functions in C
28. Calculator Program in C
29. Call by Value and Call by Reference in C
30. Ceil Function in C
31. Coding Vs. Programming
32. Command Line Arguments in C/C++
33. Comments in C
34. Compilation process in C
35. Conditional Statements in C
36. Conditional operator in the C
37. Constant Pointer in C
38. Constants in C
39. Dangling Pointer in C
40. Data Structures in C
41. Data Types in C
42. Debugging C Program
43. Convert Decimal to Binary in C
44. Define And include in C
45. Difference Between Arguments And Parameters
46. Difference Between Compiler and Interpreter
47. Difference Between If Else and Switch
48. Do While Loop In C
49. Double In C
50. Dynamic Array in C
51. Dynamic Memory Allocation in C
52. Enumeration (or enum) in C
53. Evaluation of Arithmetic Expression
54. Factorial of A Number in C
55. Features of C Language
56. Fibonacci Series Program in C Using Recursion
57. File Handling in C
58. For Loop in C
59. Format Specifiers in C
60. Functions in C
61. Function Pointer in C
62. goto statement in C
63. C Hello World Program
64. Header Files in C
65. Heap Sort in C Program
66. Hello World Program in C
67. History of C Language
68. How to compile a C program in Linux
69. How to Find a Leap Year Using C Programming
70. Identifiers in C
71. If Else Statement in C
72. If Statement in C
73. Implementation of Queue Using Linked List
74. Increment and decrement operators in c
75. Input and Output Functions in C
76. How To Install C Language In Mac
77. Jump Statements in C
78. Lcm of Two Numbers in C
79. Length of an Array in C
80. Library Function in C
81. Linked list in C
82. Logical Operators in C
83. Macros in C
84. Matrix multiplication in C
85. Nested if else statement in C
86. Nested Loop in C
87. One Dimensional Array in C
88. Operator Precedence and Associativity in C
89. Overflow And Underflow in C
90. Palindrome Program in C
91. Pattern Programs in C
92. Pointer to Pointer in C
93. Pointers in C: A Comprehensive Tutorial
94. Pre-increment And Post-increment
95. Prime Number Program in C
96. Program for Linear Search in C
97. Pseudo-Code In C
98. Random Access Files in C
99. Random Number Generator in C
100. Recursion in C
101. Relational Operators in C
102. Simple interest program in C
103. Square Root in C
104. Stack in C
105. Stack Using Linked List in C
106. Static function in C
107. Stdio.h in C
108. Storage Classes in C
109. strcat() in C
110. Strcmp in C
111. Strcpy in C
112. String Comparison in C
113. String Functions in C
114. String Length in C
115. String Pointer in C
116. strlen() in C
117. Structures in C
118. Structure of C Program
119. Switch Case in C
120. C Ternary Operator
121. Tokens in C
Now Reading
122. Toupper Function in C
123. Transpose of a Matrix in C
124. Two Dimensional Array in C
125. Type Casting in C
126. Types of Error in C
127. Unary Operator in C
128. Use of C Language
129. User Defined Functions in C
130. What is Variables in C
131. Is C language case sensitive
132. Fibonacci Series in C
In C, tokens are the smallest meaningful elements used to create a program. They include keywords, identifiers, constants, string literals, operators, punctuation marks, and special symbols. When a C program is compiled, it is broken down into these tokens, enabling the compiler to analyse and understand the program's structure.
Tokenization is a crucial step of the compilation process, as it allows the compiler to generate executable code from the provided C program by organising and categorising its individual elements.
Tokens are fundamental building blocks used in the C language to construct programs. In C, a token is defined as the smallest individual element that holds significance to the compiler's functioning.
For example, if: The keyword "if" is used to define a conditional statement that executes a block of code if a certain condition is true.
if (x > 0) { |
Certain rules are commonly used to recognise identifiers -
1. The first character of an identifier should either be an underscore or an alphabet. It cannot start with a numerical digit.
2. Identifiers in C are case-sensitive, so letters with lowercase and uppercase are considered distinct.
3. The length of identifiers should not exceed 31 characters. However, it is implementation specific.
4. Commas and blank spaces are not allowed within an identifier.
5. Using C keywords as identifiers is not permissible since they have reserved meanings for specific purposes in the language.
Types of Constants | Examples |
Integer constant | 20, 41, 94, etc. |
Octal constant | 011, 033, 077, etc. |
Floating-point constant | 13.9, 25.7, 87.4, etc. |
Character constant | 'p', 'q', 'r', etc. |
String constant | "c++", ".net", "java", etc. |
Hexadecimal constant | 0x5x, 0x1A, 0x8z, etc. |
In C, strings are represented as arrays of characters, terminated by a null character '\0'. The null character denotes the end of the string. String literals are always enclosed within double quotes (" ").
When describing a string in C, you can use different syntaxes. For example:
1. Using character array initialization:
char string[10] = {'s', 'c', 'a', 'l', 'e', 'r', '\0'}; |
Here, string[10] indicates that 10 bytes of memory space are allocated to hold the string value. Each string character is explicitly specified within single quotes, and the null character '\0' marks the end of the string.
2. Using string literal initialization:
char string[10] = "scaler"; |
The string is directly initialized with the literal "scaler" in this case. The compiler automatically appends the null character '\0' at the end of the string. Again, string[10] indicates that 10 bytes of memory space are allocated.
3. Using dynamic memory allocation:
char string[] = "scaler"; |
Here, the string is declared without specifying the size. The memory space is allocated dynamically based on the length of the string during program execution. The null character '\0' is automatically included at the end of the string.
There are three types of operators -
In the context of token classification in programming languages like C, tokens can be categorised into primary and secondary tokens. Here's an elaboration on each:
These are the fundamental elements of a programming language. They are directly recognised by the lexer or tokenizer, the component responsible for breaking down the source code into tokens. Primary tokens include
Secondary tokens are derived from primary tokens during the tokenization process. They are created by combining or modifying primary tokens to represent additional syntactic elements in a program. Secondary tokens include
As long as these rules are followed, any name can be chosen for an identifier; however, it is important to ensure that the chosen name is valid and makes sense.
Some examples of identifiers include -
These examples demonstrate valid identifiers that follow the rules mentioned earlier. They consist of a combination of letters (both uppercase and lowercase), digits, and underscores. The first character is either a letter or an underscore, and they do not conflict with reserved keywords. Identifiers are essential for naming variables, functions, and other elements in a C program, providing meaningful names to represent data and logic.
In the C programming language, an expression is a combination of operands, operators, and function calls that are evaluated to produce a value. It represents a computation or a calculation that yields a result. Expressions can involve variables, constants, arithmetic operations, logical operations, function calls, etc.
An expression can be as simple as a single constant, variable, or complex, involving multiple operators and operands. Expressions can also be used as parts of larger expressions or as function arguments.
Examples of Expressions:
int result = 2 + 3 * 4; |
In this example, the expression 2 + 3 * 4 is an arithmetic expression that performs addition and multiplication. The result of this expression is stored in the variable ‘result’.
int x = 5, y = 7; |
Here, the expression x > y is a relational expression that compares the values of x and y. The result of this expression is either true (1) or false (0), depending on whether ‘x’ is greater than ‘y’. The result is stored in the variable ‘isGreater’.
Lexical analysis, also known as scanning, is the initial phase of the compiler where the source code is divided into individual tokens or lexemes. It analyses the characters of the source code to form these tokens, which are meaningful units such as keywords, identifiers, constants, operators, and punctuation marks.
Check out this C code example to better understand the tokenizing process -
#include <stdio.h> |
During lexical analysis, the source code is divided into tokens:
Syntax analysis, also known as parsing, is the second phase of the compiler. It checks whether the sequence of tokens formed during lexical analysis follows the syntax rules defined by the programming language. It builds a parse tree or syntax tree that represents the hierarchical structure of the program based on the language's grammar rules.
Example:
Continuing from the previous example, during syntax analysis, the compiler verifies if the tokens and their arrangement follow the syntax rules of the C language. It checks for the
If the syntax analysis is successful, the program is considered syntactically correct. Otherwise, syntax errors are reported, indicating that the program violates the language's grammar rules.
1. Which of the following is not a valid C Token?
A. Identifier
B. Whitespace
C. Punctuation
D. Keyword
Answer: B. Whitespace
2. Which of these is not a valid identifier?
A. myVariable
B. 123cdd
C. _grade
D. variable_start
Answer: B. 123cdd
3. Find the number of Tokens in the following C statement.
printf("Hello, %s!", Bill); |
A. 6
B. 8
C. 9
D. 11
Answer: A. 6
Tokens in C are the smallest elements that make up a program. Understanding and using tokens correctly is essential for writing error-free C programs. They enable compilers to process and analyse codes effectively. Knowledge of tokens empowers programmers to express logic, perform computations, manipulate data, and create efficient software solutions. A solid understanding of tokens is crucial for harnessing the power of the C programming language.
Learners are encouraged to enrol in upGrad’s Master of Science in Machine Learning and AI - Now with Generative AI lectures to better understand in-demand skills like NLP, Machine Learning and Reinforcement Learning by leveraging their programming expertise. With more than 12 industry projects, an immersive learning experience and an AI-powered curriculum, aspirants are just a click away to future-proof their careers!
1. What are the six types of Tokens in C?
The six types of Tokens in C programming include Keywords, Identifiers, Operators, Constants, Strings and Special Characters.
2. What is the role of operators in C programming?
In C programming, operators play a key role in manipulating values and regulating the flow of a program, performing a wide range of operations by implementing Arithmetic, Logical and Relational operators.
3. Can an identifier start with a numerical digit in C?
No, in C, an identifier must start with either an underscore or an alphabet character. Starting with a numerical digit will return your identifier to be invalid according to the C programming’s language rules.
PAVAN VADAPALLI
Director of Engineering
Director of Engineering @ upGrad. Motivated to leverage technology to solve problems. Seasoned leader for startups and fast moving orgs. Working …Read More
Popular
Talk to our experts. We’re available 24/7.
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enrolling. upGrad does not make any representations regarding the recognition or equivalence of the credits or credentials awarded, unless otherwise expressly stated. Success depends on individual qualifications, experience, and efforts in seeking employment.
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enr...