What is the difference between char a[] = "string"; and
char *p = "string"; ?
Answers were Sorted based on User's Feedback
Answer / srinivas
a is a const pointer, whereas p is not
meaning 'a' will point to a fixed location (value of 'a' or
address of *a can't change, remains fixed) - though
contents of a can be changed (by way of accessing a[i])
| Is This Answer Correct ? | 36 Yes | 6 No |
Answer / praveenkumar managuli
char s[]; this allocate memory equal tosize of string
and char *s; holds the address of first charecter
| Is This Answer Correct ? | 23 Yes | 4 No |
Answer / abc
we cannot assign a string to another but we can assign a
char pointer to another char pointer.
| Is This Answer Correct ? | 23 Yes | 7 No |
Answer / karuna
a[] is a constant pointer to a string;
char *p is a pointer to a constant string;
In a[] address of a[] cant be change but string can be
change.
In char *p address can be change string cant be change
| Is This Answer Correct ? | 15 Yes | 3 No |
Answer / kurvatis
When a program starts its content copies from external
memory like a hard drive to a PROTECTED from writes part of
RAM. No any byte in that area can be changed!
Now the difference.
char * p = "this string is in protected memory and cannot be
changed";
You cannot change the string located in protected memory a
pointer points to.
char a[] = "this string is in memory that can be changed";
Theoretically char * p = "string"; eat less memory than
another one.
| Is This Answer Correct ? | 8 Yes | 3 No |
Answer / ashwin kumar
just one word i can say that
a[] is static memory allocation ( we cant increase size of
array while execution of program )
*p is a dynamic memory allocation ( where we can use
according to our requirement while execution )
their may be a waste age of memory and also their may be
limitaion of elements in array.
memory will not be wasted and size depends up on our
require ment in pointes
i hope its may be one of the defferance
if thier is any feed back or my answer is wrong plz write
to molugu.aswin@gmail.com
| Is This Answer Correct ? | 6 Yes | 3 No |
Answer / ashok
Pointers are fine a cannot be changed p can be changed.
I have a doubt like is there any difference in memory
allocation.
I heard like a gets its memory in local stack and p gets in
data section.
I don get the clear explanation
| Is This Answer Correct ? | 3 Yes | 4 No |
Answer / mak
in case of array size of it become fixed after initialization,
so a string of length greater than the size of previous string can't be assigned to array.
on the other hand pointer can take variable size string as it stores only the first address.
| Is This Answer Correct ? | 0 Yes | 1 No |
Answer / man
a[] = "string"; is constant pointer to constant string
char *p = "string"; is pointer to constant string
| Is This Answer Correct ? | 4 Yes | 6 No |
Write a program to find the number of times that a given word(i.e. a short string) occurs in a sentence (i.e. a long string!). Read data from standard input. The first line is a single word, which is followed by general text on the second line. Read both up to a newline character, and insert a terminating null before processing. Typical output should be: The word is "the". The sentence is "the cat sat on the mat". The word occurs 2 times.
Write a program on swapping (100, 50)
Write a program to generate prime factors of a given integer?
the constant value in the case label is followed by a a) semicolon b) colon c) braces d) none of the above
If errno contains a nonzero number, is there an error?
Explain what is the difference between functions getch() and getche()?
1.what are local and global variables? 2.what is the scope of static variables? 3.what is the difference between static and global variables? 4.what are volatile variables? 5.what is the use of 'auto' keyword? 6.how do we make a global variable accessible across files? Explain the extern keyword? 7.what is a function prototype? 8.what does keyword 'extern' mean in a function declaration?
What is the difference between #include and #include 'file' ?
how to print this sereis 2 4 3 6 5..........?
how to print this pyramid * * * * * * * * * * * * *
#include <stdio.h> int main() { int i; for (i=0;i<3;++i) { fork();fork(); } } How many processes are created when running this program (including the initial one)? Explain ؟؟؟
What is the purpose of 'register' keyword?