c语言结构第一部分

来源:互联网 发布:可以下载的软件 编辑:程序博客网 时间:2024/05/16 11:21
0: Object-c 和c的区别
0:object-c 是完全的面向对象的,c是面向过程的
1:object-c 是在c的基础之上,object-c上面写一个c语言程序是完全可以跑起来的
2:oc 里面有类的概念,c语言里面有类似的叫做结构


1: 什么是结构,联合,枚举
结构变量
结构类型
数组和结构的嵌套

什么是结构,
结构也是一种变量,是一种复合变量,结构的英文是structure,缩写是struct,结构是可以保存多个不同类型(这些类型为结构的成员member)的集合变量,例如:保存一个人的信息,id,name,age,email等
注意结构和数组的不同就是,结构里面是不同的类型的,数组是相同的类型的。

什么是联合?
联合的目的是节省存储空间,多个成员共享同一快怒出,每次只能存储一个成员,无法存储全部成员。
只要记住一点就是为了节省存储空间

什么是枚举?
枚举是一组关联的整形常量值,例如在一个游戏软件里面可以定义UP,DOWN,LEFT,RIGHT代表四个方向




2:结构变量-结构和数组的区别:
1:数组的元素类型都是相同的,而且可以通过为止来获取起元素值
2:结构中的元素都是不相同的,不能通过为止获取其元素值,可以通过名称获得
3:目的不通,数组是保存多个相同类型值的集合,结构是定义一种相关联的负荷数据类型


结构变量-结构变量的神明:
//复合类型,结构变量的声明    struct{        int pid;        char name[10];        int age;    } p1,p2;



结构变量的初始化:
//结构变量初始化    struct{        int cid;        char name[10];        int age;    } customer1={1,"kodulf",10};


初始化会有一个默认值,可以进行部分的初始化

如何访问结构成员呢?
//结构变量初始化    struct{        int cid;        char name[10];        int age;    } customer1={1,"kodulf",10};        //访问成员变量    printf("cid = %d\n",customer1.cid);    printf("name=%s\n",customer1.name);    printf("age=%d\n",customer1.age);


修改成员变量,特别要注意字符串的修改,还是要通过sring的方法来做

//修改成员变量:    customer1.cid=2;    //name需要通过字符串的拷贝的方法来做,如果直接赋值会报错的    //customer1.name="hello";如果直接赋值会报错的    //注意是包含<string.h>    strcpy(customer1.name,"TOM");    printf("cid = %d\n",customer1.cid);    printf("name=%s\n",customer1.name);    printf("age=%d\n",customer1.age);



结构变量-结构成员的操作:
和数组不通,结构可以通过等号(=)进行复制,例如
c2=c1;
//结构变量初始化    struct{        int cid;        char name[10];        int age;    } customer1={1,"kodulf",10},customer2;//和数组不通,结构可以通过等号(=)进行复制,例如    customer2=customer1;    printf("cid = %d\n",customer2.cid);    printf("name=%s\n",customer2.name);    printf("age=%d\n",customer2.age);



结构类型-结构变量的问题:
如果程序的多个地方要使用相同类型的结构变量,那就需要定义多次,这样给程序带来荣誉,
+++++++++++++++
之前讲到的是结构变量,现在讲解的是结构类型-结构标记的声明
+++++++++++
结构标记的声明;
struct person{



////  main.c//  StructTest////  Created by 千 on 16/7/19.//  Copyright © 2016年 kodulf. All rights reserved.//#include <stdio.h>#include <string.h>void func1(){    struct{        int pid;        char name[10];        int age;    }p1;}void func2(){    struct{        int pid;        char name[10];        int age;    }p1;}struct Person{    int pid;    char name[20];    int age;};int main(int argc, const char * argv[]) {    // insert code here...    printf("Hello, World!\n");    //结构变量    int age;    double d;    char c;        //复合类型,结构变量的声明    struct{        int pid;        char name[10];        int age;    } p1,p2;        //片警,可以用来形容局部变量作用域,这个老郭太6了    //两个结构,有自己的命名空间,不会相互印象的    struct{        int cid;        char name[10];        int age;    } c1;        //结构变量初始化    struct{        int cid;        char name[10];        int age;    } customer1={1,"kodulf",10},customer2;        //访问成员变量    printf("cid = %d\n",customer1.cid);    printf("name=%s\n",customer1.name);    printf("age=%d\n",customer1.age);        //修改成员变量:    customer1.cid=2;    //name需要通过字符串的拷贝的方法来做,如果直接赋值会报错的    //customer1.name="hello";如果直接赋值会报错的    //注意是包含<string.h>    strcpy(customer1.name,"TOM");    printf("cid = %d\n",customer1.cid);    printf("name=%s\n",customer1.name);    printf("age=%d\n",customer1.age);            //和数组不通,结构可以通过等号(=)进行复制,例如    customer2=customer1;    printf("cid = %d\n",customer2.cid);    printf("name=%s\n",customer2.name);    printf("age=%d\n",customer2.age);            //结构类型-结构标记,这个和java 中的类差不多    struct Person p1;    //注意上面不能够少了struct ,因为单纯的Person不是一种类型        return 0;}







0 0
原创粉丝点击