use*_*997 5 c pointers assignment-operator
我可以将指针分配给整数变量吗?如下所示。
int *pointer;
int array1[25];
int addressOfArray;
pointer = &array1[0];
addressOfArray = pointer;
Run Code Online (Sandbox Code Playgroud)
有可能这样做吗?
并非没有明确的强制转换,即
addressOfArray = (int) pointer;
Run Code Online (Sandbox Code Playgroud)
还有这个警告:
6.3.2.3 指针
...
6 任何指针类型都可以转换为整数类型。除非前面指定,否则结果是实现定义的。如果结果不能以整数类型表示,则行为未定义。结果不必在任何整数类型的值范围内。
因此,不能保证结果是有意义的整数值。