#include <iostream>

struct S {
	int a ;
};

int main() {
	S s1;
	S s2;
	s1.a = 1;
	s2.a = 2;
	
	const S* p = &s1;
	//p->a = 1; // does not work, read it from right to left as S const* p (pointer on constant S).
	
	p = &s2;
	std::cout << p->a << std::endl;
	return 0;
}