A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭正续 中级黑马   /  2012-7-31 08:20  /  2218 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在学习视频的时候,老师讲:“ 看见有struct的地方就说明这里是一个结构"。struct是结构中专用的吗?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

倒序浏览
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的值,这种用法很多时候会用到

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
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结构体类型

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
显而易见,肯定的回答你:是的,struct是结构专用

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
是,在C#中struct是用来标识结构的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马