In C language, %n is a special format specifier. It cause printf() to load the variable pointed by corresponding argument. The loading is done with a value which is equal to the number of characters printed by printf() before the occurrence of %n.
Note − It does not print anything. Another printf() function is used to print the statement.
Here is an example of %n in C language,
Example
#include<stdio.h>
int main() {
int s;
printf("The value of %ns : ", &s);
printf("%d", s);
getchar();
return 0;
}Output
The value of s : 13
Even if we give the value to the identifier, it will not consider the value given by us. It counts the characters used before the use of %n in the statement. It will not count %n as a character.
Here is an example if we pass the value,
Example
#include<stdio.h>
int main() {
int s;
int m = 28;
int val;
printf("The value of %ns and %nm %nval : ", &s, &m, &val);
printf("%d\t%d\t%d", s, m, val);
return 0;
}Output
The value of s and m val : 131921