what is the difference between %d and %*d in c languaga?
Answers were Sorted based on User's Feedback
Answer / sivakumar
anand and manini your expectations are wrong. because %d
give the original value of the variable and %*d give the
address of the variable.
eg:-
int a=10,b=20;
printf("%d%d",a,b);
printf("%*d%*d",a,b);
result is 10 20 1775 1775
here 1775 is the starting address of the memory allocation
for the integer.a and b having same address because of
contagious memory allocation.
| Is This Answer Correct ? | 35 Yes | 19 No |
Answer / azad sable,chiplun.
In first case i.e. '%d' the '%' indicates that the
conversion specification follows. And 'd' known as data
type charactor indicates that the no. to be read is in
intiger mode.
* is an input field which specifie field width.
example
scanf("%d%*d%d",&a,&b);
will assign the data 123 456 789 as follows.123 to a 456
skipp because of * 789 to b.
| Is This Answer Correct ? | 9 Yes | 5 No |
Answer / vishal pandey
int v=23,d=89;
printf("%d %*d",v,d);
then o/p v=23 and d=address value and address value change with processor but original value does not change.
| Is This Answer Correct ? | 3 Yes | 2 No |
Answer / shivam chaurasia
The %*d in a printf allows you to use a variable to control the field width, along the lines of:
int wid = 4;
printf ("%*d
", wid, 42);
output,...
..42
if the form is like this...
printf ("%*d %*d
", a, b);
is undefined behaviour as per the standard, since you should be providing four arguments after the format string, not two (and good compilers like gcc will tell you about this if you bump up the warning level). From C11 7.20.6 Formatted input/output functions:
If there are insufficient arguments for the format, the behavior is undefined.
It should be something like:
printf ("%*d %*d
", 4, a, 4, b);
check this link for extra detail....
http://www.cplusplus.com/reference/cstdio/printf/
| Is This Answer Correct ? | 1 Yes | 0 No |
what is the basis for selection of arrays or pointers as data structure in a program
a function gets called when the function name is followed by a a) semicolon (;) b) period(.) c) ! d) none of the above
The performance of an operation in several steps with each step using the output of the preceding step a) recursion b) search c) call by value d) call by reference
main() { int a,b; printf("%d,%d",scanf("%d%d",&a,&b)); } => do u mean above program's output... =>output will be:2,whatever you enter value for b. =>because scanf is a library fn which will return how many arguements it processes, and second value you are right mr.Satya but i found my self unable to understand that for the first time scanf returns the no of successful matches but how for the second time it returns the value of 'b'.while a function should return the same 'r' value every time.
What is self-referential structure in c programming?
What are the benefits of c language?
out put of printf(ā%dā,printf(ram));
#include<stdio.h> int main() { int a[3][3][2]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}; printf("%d\n",*(*(*a+1)); return 0; } What will be the output of the above question? And how?
Want to know how to write a C program that connects to a MySQL server and checks if the InnoDB plug-in is installed on it. If so, your program should print the total number of disk writes by MySQL.
What's the difference between DELETE TABLE and TRUNCATE TABLE commands?
How can I display a percentage-done indication that updates itself in place, or show one of those twirling baton progress indicators?
Are pointers integer?