您的当前位置:首页正文

C语言(iOS)06_1

来源:华拓网

// 声明一个结构体类型:由两个整形类型组成,一个叫x表示x轴坐标,另一个叫y,表示y轴坐标。

#pragma mark 结构体声明

struct zuoBiao {

// 成员变量

int x; // 第一个成员变量,变量的类型是整型,变量的名字是x

int y; // 第二个成员变量,变量的类型是整型,变量的名字是y

};

# pragma mark 匿名结构体

// 匿名结构体:没有名字的结构体。在“结构体名“的位置,只有一个空格

struct {

float a;

float b;

}

// 因为匿名结构体没有结构体名,所以在main函数或其他自定义函数中无法获取到这种类型的结构体,如果想使用,必须在声明完成后马上创建出这种类型的变量。

Noname1 = {12.32, 23.45},

Noname2 = {23.34, 45.34};

// 声明一个结构体类型,名字叫:student,成员变量有:name, age, gender。

struct student {

char name[20];

int age;

char gender;

};

#pragma mark typedef

// 一般我们可以使用typedef将较长的结构体类型修饰符替换为另一个名字

typedef struct student student;

// typedef的另一种用法:在声明结构体类型的同时,找一个新名字代替。

typedef struct teacher{

char name[20];

int age;

}teacher;

int main(int argc, const char * argv[]) {

    printf("%f,  %f\n",stu1.a, stu1.b );

 什么是结构体?

   /*

   1、结构体是一种构造类型,由其他基本数据类型组合成的一种新类型。与数组的区别是:构成结构体的基本数据类型可以不同,数组必须是相同类型的数据构成。

    2、结构体必须先声明,声明这个结构体是由哪些数据类型构成的,相当于基本数据类型的“int \ char \double”之类的类型说明。

     3、声明完成后,就可以在文件中创造出这种新的数据类型,就可以使用这种新类型定义变量来保存数据。

    */

//#pragma mark 定义结构体类型的变量

//    // 定义一个“zuoBiao”类型的变量。

//    // struct zuoBiao,使用struct关键字+结构体名,共同组成了变量的类型修饰符

//    // 结构体变量赋值方法和数组赋值方法一样,用{}将成员变量的值包裹起来,使用“,”分隔开各个值。

//    struct zuoBiao point1 = {1, 2};

//    // 访问结构体变量的值: point.x 使用结构体变量名 + “.” + “成员变量名”的方式访问。

//    int b = point1.x;

//    int c = point1.y;

//    printf("b = %d, point1.x = %d\n", b, point1.x);

//    printf("c = %d, point1.y = %d\n", c, point1.y);

//    // 修改point1的x为99, y为88

//    point1.x = 99;

//    point1.y = 88;

//    printf("point1.x = %d\n", point1.x);

//    printf("point1,y = %d\n", point1.y);

//    struct zuoBiao point2 = {45, 23};

//    printf("point2.x = %d,  point2.y = %d\n", point2.x, point2.y);

//    // 结构体变量之间可以整体赋值,但是数组不行。

//    struct zuoBiao point3 = point2;

//    printf("point3.x = %d,  point3,y = %d", point3.x, point3.y);

// 定义一个student类型的结构体变量

struct student stu1 = {"zhangSan", 23, 'm'};

printf("age = %d\n", stu1.age);

// 修改stu1的年龄

stu1.age = 32;

printf("age = %d\n", stu1.age);

// 修改name为suKui

// 因为字符串在数组中使用的是字符数组类型保存的,数组不能整体赋值,所以使用普通的修改成员变量的方法在这里无效,需要使用字符拷贝函数,达到修改的目的。

strcpy(stu1.name, "shuKui");

printf("%s\n", stu1.name);