Tokens in C Programming
Tokens are the smallest unit in the C program. Every keyword or character or sequence of characters that you come across in C is a token. It is the smallest element identified by the C compiler.
Think of tokens in C Programming as puzzle pieces. Each piece, or token, has a role. They come together to create a complete picture, or in this case, a program. Tokens can be words, numbers, or symbols. They make the code work.
Must Explore: C Programming Online Courses and Certifications
Let’s dive deep into the tokens to understand C programming clearly.
Table of Contents for Tokens in C
Best-suited C / C++ courses for you
Learn C / C++ with these high-rated online courses
What are Tokens in C programming?
Tokens in C are like Lego blocks. They are the smallest units in a C program. Here are the six types of tokens:
- Identifiers: These are names given to variables, functions, and arrays.
- Keywords: Reserved words in C. They must be written in lowercase.
- Operators: Symbols that operate on one or more operands to give an output.
- Strings: Sequence of characters enclosed within single or double quotation mark.
- Special Characters: These include parentheses, braces, brackets, semicolons, etc.
- Constants: Fixed values that don’t change during execution.
NOTE: C program is a collection of different types of token. Every single value you
Use of Tokens in C
Tokens are the building blocks of C. Just like you cannot write words without letters or sentences without words, similarly, you need a token to write codes in C.
Also Read: What is C Programming?
Types of Tokens in C
Tokens in C are categorized into the following 6 types. Let’s understand them one by one:
Identifiers in C
As the name suggests identifiers are used to identify something in C. An identifier is the user-defined name of a variable, method, or class.
Let’s understand the rules for naming an identifier in C:
- Identifiers must not start with a number.
- First character should be either an underscore or an alphabet followed by any sequence of alpha-numeric combination or underscore.
- Identifiers are case sensitive. ie. ‘Name’ and ‘name’ would be considered as two different identifiers.
- Keywords cannot be used as identifiers.
- Blank spaces or commas are not allowed in the identifier. i.e name var is wrong and name_var is correct.
- At max you can have 31 characters in an identifier.
- Not a rule but having a meaningful short identifier name is ideal.
Example of Identifiers
| Valid Identifiers | Bad Identifiers |
|---|---|
| totalScore | 123abc (Starts with a number) |
| playerName | total score (Contains a space) |
| _temporaryValue | void (Is a keyword) |
| MAX_LIMIT | a (Not descriptive) |
| calculateAverage | p_n (Unclear abbreviation) |
Keywords in C
Keywords are special reserved words in C. These special words hold a specific predefined meaning and functionality of its own. Using them as identifiers would result in error. C has in total 32 such predefined words known as keywords.
| auto | enum | const | goto |
| double | case | float | default |
| struct | register | unsigned | sizeof |
| int | typedef | short | volatile |
| break | extern | continue | if |
| else | char | for | do |
| switch | return | void | static |
| long | union | signed | while |
Operators in C
Operators are special symbols that are used to perform specific operations between two identifiers. The identifiers on which the operations are performed on operators. In C we classify the operators as below:
- Unary Operator
- Binary Operator
- Ternary Operator
Unary Operator
Unary operators in C work on one operand. Here are some examples:
| Operator | Description |
|---|---|
| ++ | Increment operator. Increases value by 1. |
| – – | Decrement operator. Decreases value by 1. |
| – | Negation operator. Changes sign of value. |
| ! | Logical NOT operator. Reverses logical state. |
| & | Address operator. Gives memory address of value. |
| * | Dereference operator. Gives value at a memory address. |
Binary Operator
Binary operators in C work on two operands. Here are some examples:
| Type of Operator | Symbol | Description |
|---|---|---|
| Arithmetic | + | Addition |
| – | Subtraction | |
| * | Multiplication | |
| / | Division | |
| % | Modulus (Remainder) | |
| Relational | == | Equal to |
| != | Not equal to | |
| > | Greater than | |
| < | Less than | |
| >= | Greater than or equal to | |
| <= | Less than or equal to | |
| Logical | && | Logical AND |
| || | Logical OR | |
| ! | Logical NOT (though unary) | |
| Bitwise | & | Bitwise AND |
| | | Bitwise OR | |
| ^ | Bitwise XOR | |
| << | Left shift | |
| >> | Right shift | |
| Assignment | = | Assign |
| += | Add and assign | |
| -= | Subtract and assign | |
| *= | Multiply and assign | |
| /= | Divide and assign |
Ternary Operator
Ternary means three. As the name suggests, this type of operator (?:) requires three operands. The ternary operator in C is a shorthand for an “if-else” statement. It’s used to assign a value to a variable based on a condition.
The ternary operator in C requires three operands. Here’s why:
- Condition: The first operand is a condition that evaluates to true or false.
- Value if True: The second operand is the value that will be used if the condition is true.
- Value if False: The third operand is the value that will be used if the condition is false.
- It consists of three parts: a condition, a value if the condition is true, and a value if the condition is false.
- The syntax is: condition ? value_if_true : value_if_false.
Example:
int a = 10, b = 20;int max = (a > b) ? a : b; // max will be 20, as the condition is false
String in C
Strings are sequences of characters enclosed within the single or double quotes. Each string is followed by a null character (‘/0’) which represents the end of the string.
Example:
char s[7] = 'shiksha'; //Compiler allocates 9 bytes to the ‘x’ array.char s[] = 'shiksha'; // Memory allocation is done during the run time.char s[7] = {'s','h','i','k','s','h','a',\0′}; // Represented as individual characters.
Special Character in C
Special characters in C are reserved characters which hold predefined meaning to it. Let’s see some of the special characters defined in C:
- ( ) Small Brackets: Used with function declaration or function calling. Eg: scanf()
- [ ] Square Brackets: Used with array declaration
- { } Curly brackets: Denotes the opening or closing of a block
- (,) Comma: Used to separate two or more variables or parameters in function
- (.) Dot: Used to access members of union or a structure
- (*) Asterisks: Used while declaring pointers in C
- (#) Hash: Used as a preprocessor directive while including the header files. Eg: #include<conio.h>
Constant in C
Constant refers to a value of a variable which does not change throughout the program.
List of the types of constants used in C language:
| Type of Constant | Example |
| Floating-point constant | 3.14, 23.33, 52.23, etc |
| Integer constant | 10, 53, 26, etc. |
| Hexadecimal constant | 0x9x, 0x3, 0X8, etc. |
| Octal constant | 022, 019, 07, 0121, etc. |
| String constant | “Python”, “Program”, “C”,etc. |
| Character constant | ‘a’, ‘b’, ‘c’, etc. |
FAQs
What is a token in C language?
Tokens are the smallest building block of the C language. Each character or sequence of characters is a token.
What are the 6 tokens in C?
There are 6 tokens in C: Identifiers, Keywords, Operators, Strings, Special Characters, Constant.
Is printf a token?
In short YES. printf is a keyword and all the keywords are a token so printf is a token.
What are keywords in C?
Keywords are special reserved words with special pre-defined functionality. For example: if, else, while, etc.
