|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Home : Math & Science : Computer Science Study Guides : Arrays : Memory : The Relationship between Strings and Arrays
The Relationship between Strings and Arrays
A string in C is essentially a block of memory where each subsequent
byte stores the next character in the string. That is, the first
character goes into the first byte the second character into the second
byte. In other words, all of the characters are in contiguous bytes.
The end of the string is then marked with a special character '\0'
called the null character. If you consider what an array looks
like in memory, it is essentially contiguous blocks of the same data-type.
So a string in C is a type of an array, namely a char array which is
null-terminated array. The null character marks the end of the array
to make it easy to know when the string ends (and thereby avoid moving
off the end of an array and possibly causing a memory violation).
![]()
Figure 3.1: "SPARK" in Memory
For example, if you declare a string char *str="SPARK"; then you can
index into the string by treating str as an array. So str[0] is the
character 'S'. str[3] is the character 'R'. str[5] is the null
character which marks the end of the string. Many string routines rely
on strings being null terminated and may cause memory violations if this
is not the case.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contact Us | Privacy Policy | Terms and Conditions | About
©2006 SparkNotes LLC, All Rights Reserved.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||