搜索
首页 电脑/网络 程序设计 C/C++

请问一个关于C语言结构体的问题

请问 struct { int a; char *s; } x,*p=&x;请问1指针是不是只能是字符行 2x前面没定义那他是什么类型他有什么用. 3请问指针P在这里是值请问为什么能指向地址. 4比如*p=a;a是int型我认为是正确的,如果*p=&a就是错的.请问我理解的对吗如果不对为什么,如果对那上面*p=&x是怎么回事啊~~

全部回答

2006-08-31

0 0
    说一说我的理解,如有不正确之处,请大家指正: 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*当然不正确…… 希望对你有帮助……。

2006-08-31

56 0
1、指针可以指向任何的类型,只要是在内存中分配地址就可以指向,指针变量也可以指向另一个指针变量 2、结构体类型 3、p是指针变量,指针就是内存地址,指针存在指针变量里 4、那是指针定义的同时进行了赋值 比如 int *p=&i; 定义了一个指向整型的指针变量,然后把i的地址赋给指针变量p 这句其实是 int *p; p=&i; 这么两句

2006-08-31

45 0
struct 关键字后面不加结构体类型名,代表这是一个无名类型 这样你可以访问x,但是不能够定义其他的x,这是结构体的一种用法,windows的头文件中,大量使用了这种方法

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报