&i; B. int i=10,*p=&i; C. int i=10,*p; *p = &i; D. int i=10,*p; p = i;
在这里,错误的是 C 选项。在 C 选项中,*p 尝试去赋值 &i,但是 *p 是一个指针变量,而 &i 是 i 变量的地址。因此,不能将 &i 赋值给 *p。
正确的用法应该是将 p 赋值为 &i,然后使用 *p 来访问 i 变量的值。例如:
int i = 10, *p; p = &i; *p = 20; // 现在 i 的值为 20
另外,A 选项是正确的,B 选项也是正确的,D 选项是错误的。在 D 选项中,p 尝试赋值 i,但是 p 是一个指针变量,而 i 是一个整数变量。因此,不能将 i 赋值给 p。