Firstly, s.s[20] should be s,s[20].
Memory has contiguous blocks internally. s[20] just point to 20th byte address from s. So s[20] = 'x' will put 'x' at that position. Size of s is indeed size of "hello world". Using s[20] can cause trouble as it might change the value of some other variable or array which already acquires that memory address. So it is better, never to access array index beyond array size.