Prepare Interview

Mock Exams

Make Homepage

Bookmark this page

Subscribe Email Address

C%20%20%20Interview%20Questions%20and%20Answers

Question: What is the difference between char a[] = ?string?; and char *p = ?string?; ?
Answer:
Answer1
a[] = ?string?;
char *p = ?string?;

The difference is this:
p is pointing to a constant string, you can never safely say
p[3]=?x';
however you can always say a[3]=?x';

char a[]=?string?; - character array initialization.
char *p=?string? ; - non-const pointer to a const-string.( this is permitted only in the case of char pointer in C++ to preserve backward compatibility with C.)

Answer2
a[] = ?string?;
char *p = ?string?;

a[] will have 7 bytes. However, p is only 4 bytes. P is pointing to an adress is either BSS or the data section (depending on which compiler ? GNU for the former and CC for the latter).

Answer3
char a[] = ?string?;
char *p = ?string?;

for char a[]??.using the array notation 7 bytes of storage in the static memory block are taken up, one for each character and one for the terminating nul character.

But, in the pointer notation char *p????.the same 7 bytes required, plus N bytes to store the pointer variable ?p? (where N depends on the system but is usually a minimum of 2 bytes and can be 4 or more)??
Is it helpful? Yes No

Most helpful rated by users:

©2024 WithoutBook