31/07/2013
C pointers questions
Share
More
Next Blog
Create Blog
Sign In
C programming questions and answers
C language tricky good pointers questions answers and explanation operators data types arrays structures questions functions
recursion preprocessors, looping, file handling, strings questions switch case if else printf advance c linux objective types mcq
faq interview questions and answers with explanation and solution for freshers or beginners. Placement online written test prime
numbers Armstrong Fibonacci series factorial palindrome code programs examples on c c++ tutorials and pdf
C tutorial
C Programming Questions
C Interview Questions
C Programs
C Test
C programming pdf
Program of c++
Create projects
Sql Server
Questions and Answers
Multiple Choice Questions
Interviewer Questions
Search
C Programming Language
C++ Language
C++ Code
C QUESTIONS AND ANSWERS
C program examples
C interview questions and answers
Data type questions
Variable naming rule questions
Operators questions
Control flow questions
Switch case questions
Looping questions
www.cquestions.com/2012/02/c-pointers-questions.html
300 lakh IT jobs*
www.Aptech-Education.com
Get a global career through Aptech
Work in the IT field of your choice
Are You a Fresher?
www.NIITeducation.com/Graduate
Looking for Job. Apply now for NIIT
Diploma Programs & get Job-Ready!
Top Jobs in Companies.
www.monsterindia.com
Savillsindia is Hiring. Search & Apply to
Jobs.
1/30
31/07/2013
Pointer questions
String questions
Printf,Scanf questions
C pointers questions
Jobs.
C pointers questions
Preprocessor questions
Structure questions
Commad line argument
C questions in Linux
C online test
C mixed practice sets
C pointers interview questions and answers
Frequently asked technical objective types multiple choice pointer questions with
explanation of placement in c programming language
Note: Linux GCC compilers and Visual C++ compiler doesn't support far and huge
pointers.
C tricky questions
Example of recursion in c
1.
C programming forums
What will be output of following program?
C TUTORIAL
#include<stdio.h>
int main(){
int a = 320;
char *ptr;
ptr =( char *)&a;
printf("%d ",*ptr);
return 0;
}
Memory mapping tutorial in c
Variables tutorial in c
Data types tutorial in c
Storage classes tutorial in c
Looping tutorial in c
(A) 2
Pointers tutorial in c
(B) 320
Function tutorial in c
(C) 64
Array tutorial in c
(D) Compilation error
Preprocessor tutorial in c
(E) None of above
Advanced c tutorial
POPULAR POSTS
Output
E x p l a n a t i o n :
C program examples
Check given number is prime
number or not using c program
C interview questions and answers
Turbo C++ 3.0: 64
QUICK SORT USING C PROGRAM
www.cquestions.com/2012/02/c-pointers-questions.html
2/30
31/07/2013
C pointers questions
Merge sort program in c
Program to convert decimal to binary
in c
Write a c program to reverse a string
Find out the perfect number using c
program
Turbo C ++4.5: 64
Linux GCC: 64
Visual C++: 64
Write a c program to find out sum of
digit of given number
TO FIND FIBONACCI SERIES USING
C PROGRAM
SUBSCRIBE VIA EMAIL
As we know int is two byte data byte while char is one byte data byte.
char pointer can keep the address one byte at time.
Binary value of 320 is 00000001 01000000 (In 16 bit)
Enter your email address:
Memory representation of int a = 320 is:
Subscribe
Delivered by FeedBurner
C PROGRAMMING QUESTIONS AND ANSWER
C questions and answers
Debugging questions in c with
answers
Aptitude questions and answers in c
C basic questions
Multiple choice questions in c
So ptr is pointing only first 8 bit which color is green and Decimal
value is 64.
STANDARD OF QUESTIONS ?
Excellent
2.
Good
What will be output of following program?
Avg
Worst
Vote
Show results
Votes so far: 5505
Days left to vote: 865
www.cquestions.com/2012/02/c-pointers-questions.html
#include<stdio.h>
#include<conio.h>
int main(){
void (*p)();
int (*q)();
int (*r)();
p = clrscr;
3/30
31/07/2013
C pointers questions
SUBSCRIBE TO
Posts
Comments
MY HEADLINES
q = getch;
r = puts;
(*p)();
(*r)("cquestionbank.blogspot.com");
(*q)();
return 0;
C programming questions and answer
C questions and answers
(A) NULL
Debugging questions in c with
answers
(B) cquestionbank.blogspot.com
Aptitude questions and answers in c
(C) c
C basic questions
(D) Compilation error
Multiple choice questions in c
Objective questions of c
(E) None of above
Program in c language
Simple program example in c
language
Tricky c questions and answers
Output
E x p l a n a t i o n :
C programming online test
C Linux interview questions and
answers
Turbo C++ 3.0: cquestionbank.blogspot.com
Looping questions in c and answers
C string questions and answers with
explanation
C operator questions with answers
Check the given number is
palindrome number or not using c
program
C pointers questions
Turbo C ++4.5: cquestionbank.blogspot.com
Linux GCC: Compilation error
Visual C++: Compilation error
Data type questions in c
Check given number is prime
number or not using c program
struct bit fields questions in c
C questions answers
C interview questions and answers
How to test palindrome in c++
p is pointer to function whose parameter is void and return type is
also void. r and q is pointer to function whose parameter is void and
return type is int . So they can hold the address of such function.
Palindrome number in c++
Program of palindrome number in
c++
C++ code to get sum of all odd
numbers in given range
3.
What will be output of following program?
#include<stdio.h>
int main(){
www.cquestions.com/2012/02/c-pointers-questions.html
4/30
31/07/2013
C pointers questions
ABOUT ME
ritesh kumar
Follow
1.2k
View my complete
profile
GOOGLE+ BADGE
int i = 3;
int *j;
int **k;
j=&i;
k=&j;
printf("%u %u %d ",k,*k,**k);
return 0;
(A) Address, Address, 3
Add to circles
(B) Address, 3, 3
(C) 3, 3, 3
(D) Compilation error
(E) None of above
Output
Explanation:
Turbo C++ 3.0: Address, Address, 3
Turbo C ++4.5: Address, Address, Address
Linux GCC: Address, Address, 3
Visual C++: Address, Address, 3
Memory representation
www.cquestions.com/2012/02/c-pointers-questions.html
5/30
31/07/2013
C pointers questions
Here 6024, 8085, 9091 is any arbitrary address, it may be different.
Value of k is content of k in memory which is 8085
Value of *k means content of memory location which address k keeps.
k keeps address 8085 .
Content of at memory location 8085 is 6024
In the same way **k will equal to 3.
Short cut way to calculate:
Rule: * and & always cancel to each other
i.e. *&a = a
So *k = *(&j) since k = &j
*&j = j = 6024
And
**k = **(&j) = *(*&j) = *j = *(&i) = *&i = i = 3
4.
www.cquestions.com/2012/02/c-pointers-questions.html
6/30
31/07/2013
C pointers questions
What will be output of following program?
#include<stdio.h>
int main(){
char far *p =(char far *)0x55550005;
char far *q =(char far *)0x53332225;
*p = 80;
(*p)++;
printf("%d",*q);
return 0;
}
(A) 80
(B) 81
(C) 82
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 81
Turbo C ++4.5: Compilation error
Linux GCC: Compilation error
Visual C++: Compilation error
Far address of p and q are representing same physical address.
Physical address of 0x55550005 = (0x5555) * (0x10) + (0x0005) =
0x55555
www.cquestions.com/2012/02/c-pointers-questions.html
7/30
31/07/2013
C pointers questions
Physical address of 0x53332225 = (0x5333 * 0x10) + (0x2225) = 0x55555
*p = 80, means content at memory location 0x55555 is assigning value
25
(*p)++ means increase the content by one at memory location 0x5555 so
now content at memory location 0x55555 is 81
*q also means content at memory location 0x55555 which is 26
5.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
char *ptr1 = NULL;
char *ptr2 = 0;
strcpy(ptr1," c");
strcpy(ptr2,"questions");
printf("\n%s %s",ptr1,ptr2);
return 0;
}
(A) c questions
(B) c (null)
(C) (null) (null)
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: (null) (null)
Turbo C ++4.5: Run time error
www.cquestions.com/2012/02/c-pointers-questions.html
8/30
31/07/2013
C pointers questions
Linux GCC: Run time error
Visual C++: Run time error
We cannot assign any string constant in null pointer by strcpy
function.
6.
What will be output of following program?
#include<stdio.h>
int main(){
int huge *a =(int huge *)0x59990005;
int huge *b =(int huge *)0x59980015;
if(a == b)
printf("power of pointer");
else
printf("power of c");
return 0;
}
(A) power of pointer
(B) power of c
(C) power of cpower of c
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: power of pointer
Turbo C ++4.5: power of c
www.cquestions.com/2012/02/c-pointers-questions.html
9/30
31/07/2013
C pointers questions
Linux GCC: Compilation error
Visual C++: Compilation error
Here we are performing relational operation between two huge
addresses. So first of all both a and b will normalize as:
a= (0x5999)* (0x10) + (0x0005) =0x9990+0x0005=0x9995
b= (0x5998)* (0x10) + (0x0015) =0x9980+0x0015=0x9995
Here both huge addresses are representing same physical address. So
a==b is true.
7.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
register a = 25;
int far *p;
p=&a;
printf("%d ",*p);
return 0;
}
(A) 25
(B) 4
(C) Address
(D) Compilation error
(E) None of above
Output
www.cquestions.com/2012/02/c-pointers-questions.html
10/30
31/07/2013
C pointers questions
E x p l a n a t i o n :
Turbo C++ 3.0: Compilation error
Turbo C ++4.5: Compilation error
Linux GCC: Compilation error
Visual C++: Compilation error
Register data type stores in CPU. So it has not any memory address.
Hence we cannot write &a.
8.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
char far *p,*q;
printf("%d %d",sizeof(p),sizeof(q));
return 0;
}
(A) 2 2
(B) 4 4
(C) 4 2
(D) 2 4
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 4 4
www.cquestions.com/2012/02/c-pointers-questions.html
11/30
31/07/2013
C pointers questions
Turbo C ++4.5: 4 4
Linux GCC: Compilation error
Visual C++: Compilation error
p is far pointer which size is 4 byte.
By default q is near pointer which size is 2 byte.
9.
What will be output of following program?
#include<stdio.h>
int main(){
int a = 10;
void *p = &a;
int *ptr = p;
printf("%u",*ptr);
return 0;
}
(A) 10
(B) Address
(C) 2
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 10
www.cquestions.com/2012/02/c-pointers-questions.html
12/30
31/07/2013
C pointers questions
Turbo C ++4.5: 10
Linux GCC: 10
Visual C++: 10
Void pointer can hold address of any data type without type casting.
Any pointer can hold void pointer without type casting.
10.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
int register a;
scanf("%d",&a);
printf("%d",a);
return 0;
}
//if a=25
(A) 25
(B) Address
(C) 0
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: Compilation error
www.cquestions.com/2012/02/c-pointers-questions.html
13/30
31/07/2013
C pointers questions
Turbo C ++4.5: Compilation error
Linux GCC: Compilation error
Visual C++: Compilation error
Register data type stores in CPU. So it has not any memory address.
Hence we cannot write &a.
11.
What will be output of following program?
#include<stdio.h>
int main(){
char arr[10];
arr = "world";
printf("%s",arr);
return 0;
}
(A) world
(B) w
(C) Null
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: Compilation error
Turbo C ++4.5: Compilation error
www.cquestions.com/2012/02/c-pointers-questions.html
14/30
31/07/2013
C pointers questions
Linux GCC: Compilation error
Visual C++: Compilation error
Compilation error Lvalue required
Array name is constant pointer and we cannot assign any value in
constant data type after declaration.
12.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
int a,b,c,d;
char *p = ( char *)0;
int *q = ( int *q)0;
float *r = ( float *)0;
double *s = 0;
a = (int)(p+1);
b = (int)(q+1);
c = (int)(r+1);
d = (int)(s+1);
printf("%d %d %d %d",a,b,c,d);
return 0;
}
(A) 2 2 2 2
(B) 1 2 4 8
(C) 1 2 2 4
(D) Compilation error
(E) None of above
Output
www.cquestions.com/2012/02/c-pointers-questions.html
15/30
31/07/2013
C pointers questions
E x p l a n a t i o n :
Turbo C++ 3.0: 1 2 4 8
Turbo C ++4.5: Compilation error
Linux GCC: Compilation error
Visual C++: Compilation error
Address + 1 = next address
Since initial address of all data type is zero. So its
next address will be size of data type.
13.
What will be output of following program?
#include<stdio.h>
#include<string.h>
int main(){
int a = 5,b = 10,c;
int *p = &a,*q = &b;
c = p - q;
printf("%d" , c);
return 0;
}
(A) 1
(B) 5
(C) -5
www.cquestions.com/2012/02/c-pointers-questions.html
16/30
31/07/2013
C pointers questions
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 1
Turbo C ++4.5: 1
Linux GCC: 1
Visual C++: 2
Difference of two same type of pointer is always one.
14.
What will be output of following program?
#include<stdio.h>
unsigned long int (* avg())[3]{
static unsigned long int arr[3] = {1,2,3};
return &arr;
}
int main(){
unsigned long int (*ptr)[3];
ptr = avg();
printf("%d" , *(*ptr+2));
return 0;
}
(A) 1
(B) 2
(C) 3
(D) Compilation error
www.cquestions.com/2012/02/c-pointers-questions.html
17/30
31/07/2013
C pointers questions
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 3
Turbo C ++4.5: 3
Linux GCC: 3
Visual C++: 3
15.
What will be output of following program?
#include<stdio.h>
int main(){
int * p , b;
b = sizeof(p);
printf("%d" , b);
return 0;
}
(A) 2
(B) 4
(C) 8
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 2 or 4
Turbo C ++4.5: 2 or 4
www.cquestions.com/2012/02/c-pointers-questions.html
18/30
31/07/2013
C pointers questions
Linux GCC: 4
Visual C++: 4
since in this question it has not written p is which type of pointer.
So its output will depend upon which memory model has selected.
Default memory model is small.
16.
What will be output of following program?
#include<stdio.h>
int main(){
int i = 5 , j;
int *p , *q;
p = &i;
q = &j;
j = 5;
printf("%d %d",*p,*q);
return 0;
}
(A) 5 5
(B) Address Address
(C) 5 Address
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 5 5
Turbo C ++4.5: 5 5
www.cquestions.com/2012/02/c-pointers-questions.html
19/30
31/07/2013
C pointers questions
Linux GCC: 5 5
Visual C++: 5 5
17.
What will be output of following program?
#include<stdio.h>
int main(){
int i = 5;
int *p;
p = &i;
printf(" %u %u", *&p , &*p);
return 0;
}
(A) 5 Address
(B) Address Address
(C) Address 5
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: Address Address
Turbo C ++4.5: Address Address
Linux GCC: Address Address
Visual C++: Address Address
Since * and & always cancel to each other.
www.cquestions.com/2012/02/c-pointers-questions.html
20/30
31/07/2013
C pointers questions
i.e. *&a = a
so *&p = p which store address of integer i
&*p = &*(&i) //since p = &i
= &(*&i)
= &i
So second output is also address of i
18.
What will be output of following program?
#include<stdio.h>
int main(){
int i = 100;
printf("value of i : %d addresss of i : %u",i,&i);
i++;
printf("\nvalue of i : %d addresss of i : %u",i,&i);
return 0;
}
(A)
value of i : 100 addresss of i : Address
value of i : 101 addresss of i : Address
(B)
value of i : 100 addresss of i : Address
value of i : 100 addresss of i : Address
(C)
value of i : 101 addresss of i : Address
value of i : 101 addresss of i : Address
(D) Compilation error
(E) None of above
www.cquestions.com/2012/02/c-pointers-questions.html
21/30
31/07/2013
C pointers questions
Output
E x p l a n a t i o n :
Turbo C++ 3.0:
value of i : 100 addresss of i : Address
value of i : 101 addresss of i : Address
Turbo C ++4.5:
value of i : 100 addresss of i : Address
value of i : 101 addresss of i : Address
Linux GCC:
value of i : 100 addresss of i : Address
value of i : 101 addresss of i : Address
Visual C++:
value of i : 100 addresss of i : Address
value of i : 101 addresss of i : Address
Within the scope of any variable, value of variable may change but its
address will never change in any modification of variable.
19.
www.cquestions.com/2012/02/c-pointers-questions.html
22/30
31/07/2013
C pointers questions
What will be output of following program?
#include<stdio.h>
int main(){
char far *p =(char far *)0x55550005;
char far *q =(char far *)0x53332225;
*p = 25;
(*p)++;
printf("%d",*q);
return 0;
}
(A) 25
(B) Address
(C) Garbage
(D) Compilation error
(E)None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 26
Turbo C ++4.5: Compilation error
Linux GCC: Compilation error
Visual C++: Compilation error
Far address of p and q are representing same physical address.
Physical address of
0x55550005 = 0x5555 * ox10 + ox0005 = 0x55555
Physical address of
www.cquestions.com/2012/02/c-pointers-questions.html
23/30
31/07/2013
C pointers questions
0x53332225 = 0x5333 * 0x10 + ox2225 = 0x55555
*p = 25, means content at memory location 0x55555 is assigning value
25
(*p)++ means to increase the content by one at memory the location
0x5555 so now content of memory location at 0x55555 is 26
*q also means content at memory location 0x55555 which is 26
20.
What will be output of following program?
#include<stdio.h>
int main(){
int i = 3;
int *j;
int **k;
j = &i;
k = &j;
printf("%u %u %u",i,j,k);
return 0;
}
(A) 3 Address 3
(B) 3 Address Address
(C) 3 3 3
(D) Compilation error
(E) None of above
Output
E x p l a n a t i o n :
Turbo C++ 3.0: 3 Address Address
www.cquestions.com/2012/02/c-pointers-questions.html
24/30
31/07/2013
C pointers questions
Turbo C ++4.5: 3 Address Address
Linux GCC: 3 Address Address
Visual C++: 3 Address Address
Here 6024, 8085, 9091 is any arbitrary address, it may be different.
Pointer Tutorial
More pointer questions
Array questions
String questions
Function questions
+5 Recommend this on Google
12 comments:
www.cquestions.com/2012/02/c-pointers-questions.html
25/30
31/07/2013
C pointers questions
bartek 2/15/12, 2:43 AM
According to Q13, the explanation is wrong. First of all, the answer in this question depends on how this 2 variables are
allocated on stack, I mean if they're two consecutive values or they're apart from each other in memory. For example on
my Visual C++ in such a declaration:
int a = 5, b = 10;
Difference between addresses of a and b is 12 bytes, so if they're 4 bytes ints the difference is &a - &b = 3.
Difference between two pointers of same type isn't always 1 !!!!!! It depends on they relative location in memory !!!!!!
Reply
Replies
Lokesh Sharma 6/25/13, 7:55 PM
Difference of two pointers of same type is 1 and not the size of their data types. Try this code on codepad.org
which uses linux gcc compiler.
Also, the difference between two pointers of same type is not always 1 as mentioned. Try this code
#include
#include
int main(){
int a = 5,b = 10,c = 100, d = -9;
int *p = &a,*q = &d;
c = p - q;
printf("%d" , c);
return 0;
}
Reply
Unknown 8/7/12, 12:12 PM
according to Q14,there is no explanation please provide explanation,it is very good for beginners...otherwise everthing
fine...
ITS VERY GOOD JOB..PLEASE KEEP IT UP
Reply
Laxmipooja Anegundi 8/20/12, 10:55 PM
will this program face dangling pointer problem???
#include
unsigned long int (* avg())[3]{
static unsigned long int arr[3] = {1,2,3};
return &arr;
}
www.cquestions.com/2012/02/c-pointers-questions.html
26/30
31/07/2013
C pointers questions
int main(){
unsigned long int (*ptr)[3];
ptr = avg();
printf("%d" , *(*ptr+2));
return 0;
}
Reply
Anonymous 9/14/12, 12:00 AM
i want a C program that takes the input the mark sheets of N number of students.
for examle;
Enter the marks for student 1 student name: aaa
roll number: 24
marks obtained in 5 subjects: 56 89 87 76 98
Enter the roll number of the student to be searched: 22
The details of student with roll number 22:
name: bbb
total marks obtained: 293
Reply
Anonymous 9/14/12, 12:03 AM
i need a C program that accepts the roll numbers and names of N students from the user and prints those in the
alphabetical order of the name, along with the roll numbers.
Enter the number of students: 3
Enter the name of student #1: vinay
Enter vinays roll number: 12
Enter the name of student #2: anand
Enter anands roll number: 14
Enter the name of student #3: kumar
Enter kumars roll number: 11
The list of students, in sorted order of names is given below:
anand (14)
kumar (11)
vinay (12)
Reply
sahil 9/14/12, 12:50 AM
what is O/P of this n please also tell whats the concept behind that o/p?
#include
main()
{
www.cquestions.com/2012/02/c-pointers-questions.html
27/30
31/07/2013
C pointers questions
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d----%d",*p,*q);
}
Reply
Replies
Lokesh Sharma 6/25/13, 7:57 PM
should give an error as q doesn't point to a location.
Reply
Neeru Nagi 3/22/13, 5:52 PM
when i put a=908 why i get -116 as output for program 1
Reply
Neeru Nagi 3/22/13, 5:53 PM
ques no 2 is producing error for pointer r
Reply
Neeru Nagi 3/22/13, 5:55 PM
there is some problem in 9 it is giving error(cant convert void to int) ..??
Reply
Roja 4/22/13, 12:25 AM
7 Question output 25 in C++ 3.0
Reply
www.cquestions.com/2012/02/c-pointers-questions.html
28/30
31/07/2013
C pointers questions
Enter your comment...
Comment as: Google Account
Publish
Preview
Links to this post
Create a Link
Newer Post
Home
Older Post
Subscribe to: Post Comments (Atom)
Test Questions
Questions Answers
C++ Language
C Programming PDF
SHARE IT
Share this on Facebook
Tweet this
View stats
(NEW) Appointment gadget >>
MUST VISIT
Grab this Headline Animator
C LOVER COMMUNITY
www.cquestions.com/2012/02/c-pointers-questions.html
29/30
31/07/2013
C pointers questions
Join this site
w ith Google Friend Connect
Members (2584) More
Already a member? Sign in
Copyright@ritesh kumar. Powered by Blogger.
www.cquestions.com/2012/02/c-pointers-questions.html
30/30