黑马程序员技术交流社区

标题: struct是结构的关键字吗? [打印本页]

作者: 郭正续    时间: 2012-7-31 08:20
标题: struct是结构的关键字吗?
在学习视频的时候,老师讲:“ 看见有struct的地方就说明这里是一个结构"。struct是结构中专用的吗?
作者: 许庭洲    时间: 2012-7-31 08:34
1,在.NET里面,C#支持struct关键字,它也是一个起源于C 但在 Java 中不可用的项;
2,因为结构是值类型,所以它们的分配效率要比类略高些;
3,struct是结构体,定义和使用与class类很像,但struct是值类型,class是引用类型;
例子:
public struct A
    {
        public byte b1, b2, b3, b4;
    }

    public class B
    {
        public byte b1, b2, b3, b4;
    }

        A  ip=new A();
        ip.b1 = 192;
        IPX ip1 = ip;    //值类型赋值是把ip的一个副本给ip1
        ip1.b1 = 191;  //对ip1更改,不影响ip的值,这种用法很少用到
        B ip3 = new B();
        ip3.b1 = 192;
        B ip4 = ip3;    //引用类型赋值是把ip3的指针给了ip4
        ip4.b1 = 191; //对ip4更改同时也会更改ip3的值,这种用法很多时候会用到
作者: 李承伟    时间: 2012-7-31 10:22
struct是关键字,在C#中有,C中也有,其他的语言不知道有没有,都是在C#与C中定义有点点不一样
在C#中定义一个结构体类型:
enum Gender   
{
    男,
    女
}   
//经过调试,下面定义的结构体类型,如果在struct前加public,程序报错,因为存在一个访问级别的问题,               
struct Person        //在前面加了struct关键字,说明定义了一个Person类型的结构体,Person结构也是一种数据类型,是我们自己定义的
{
    public string name;     //结构的成员
    public Gender sex;
    public int age;
}                    //经过调试可以在大括号后加分号,也可以不加,但是在C语言中是必须加的
//上面定义了一个Person结构体类型

作者: ARMdong    时间: 2012-7-31 12:15
显而易见,肯定的回答你:是的,struct是结构专用
作者: 李晋    时间: 2012-8-3 14:43
是,在C#中struct是用来标识结构的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2