Integral values ββcannot be initialized in C pointers, with the exception of a single constant expression that evaluates to integer zero. 17 does not satisfy this requirement.
The code is invalid. He doesn't βprintβ anything. The question makes no sense. Any attempt to analyze this issue in terms of pointer arithmetic is a ridiculous and useless waste of time.
6.5.16.1 Simple assignment
Limitations
Assume one of the following: 93)
- the left operand has a qualified or unskilled arithmetic type, and the right one has an arithmetic type;
- the left operand has a qualified or unqualified version of the structure or type of association is compatible with the type of law;
- both operands are pointers to qualified or unqualified versions of compatible types, and the type that the left points to has all the qualifiers of the type that the right points to;
- one operand is a pointer to an object or an incomplete type, and the other is a pointer to a qualified or unqualified version of void, and the type that the left points to has all the type qualifiers that it points to from the right;
- the left operand is a pointer, and on the right is the constant of the null pointer; or
- the left operand is of type _Bool, and the right is a pointer.
93) The asymmetric form of these restrictions with respect to type classifiers is due to the conversion (specified in 6.3.2.1), which changes the lvalues ββto the `` value of the expression, which removes any type qualifiers from the type category of the expression.