分类：电脑/网络-程序设计-C/C++
问题：请问一个关于C语言结构体的问题请问struct{inta;cha 
请问  strt   {  int a;      char *s;      }  x,*p=&x;请问1指针是不是只能是字符行    2x前面没定义那他是什么类型他有什么用.    3请问指针P在这里是值请问为什么能指向地址.    4比如*p=a;a是int型我认为是正确的,如果*p=&a就是错的.请问我理解的对吗如果不对为什么,如果对那上面*p=&x是怎么回事啊~~
回答：说一说我的理解，如有不正确之处，请大家指正：1. 任何类型都有指针，如int*,bool*...2. x前面的那个结构体就是x的类型。x.a就是那个int变量，x.s就是那个char*。3. p指向的就是变量x的地址，即p->a和x.a是同一块。4. 我不知道我没有没理解你的意思，你所说的*p=a，那是赋值语句，意思是将p所指向的地址的值赋成a的值；而*p=&x那是变量声明语句，意思是定义一个struct的指针，名为p，并且赋初值为x的地址！如果语句是int a=0;int *p=&a;那是正确的，因为第二句是变量声明语句，并赋初值，那个*号是表明p的类型而不是取p地址值的意思，即将int*赋初值为int*,所以是正确的；---------------------------------------如果语句是int a=0;int *p=&a;*p=&a;那第三句就不正确了，因为第三句是赋值语句，那个*号是取p地址值的意思，即*p就是一个int,而&a是int*，那么将int赋值为int*当然不正确……希望对你有帮助……