tags:

views:

84

answers:

4

What are the values of

     char a,b;
     b="this is a character"; 
     a=&b  

What will be the value of ***a, **a, and *a? How? Are there any good examples for the above?

A: 

I think you mean:

char *a,*b;
 b="this is a character"; 
 a=&b;  

using something like 

    printf("***a = %d, **a = %d, *a = %d ", ***a, **a, *b);
Preet Sangha
A: 
 char a,b;
 b="this is a character";
 a=&b

line 2: You are assigning a char* to a char. This will generate an error. line 3: You doing the same thing in line three. Perhaps you meant to declare b as a char*?

Assuming that b is a char*:

***b will dereference to 't', then will generate an error for trying to dereference a char. Same for **b. *b will result in 't'.

Alexander Rafferty
A: 

It seems you missed some stars.

  char **a,*b;
  b="this is a character"; // 't' is the first character
  a=&b;

In this case *a is the b variable, **a (or *b) is the character t and ***a is a compilation error.

ring0
A: 

I read C 6 years ago. Still my statements can answer your question.

in case of a=&b, a is storing b's location in memory. So *a returns value of b. But **a will treat b's value as memory address. And will return the value of memory block having the address equals to b's value. And so on.

articlestack