The statement :
s = [NSString stringWithString:@"blamp"];
actually creates a new memory location for the string "blamp" and the old address of s
gets replaced by this new address.
And you get the feel that the same s
is updated!!! Actually the pointer now points to some other memory addresss.
String manipulation means changing the same string : as if you try
NSString *s = @"cat";
[s appendString:@"s"];//tries to append to the same. this will through error.
//the above works with NSMutableString.