首页 > 代码库 > IOS-Object-C学习之结构体使用
IOS-Object-C学习之结构体使用
前言:定义结构体并不是定义一个变量,而是定义了种数据类型。
结构体作用:
结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。 在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。 结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。
摘自:百度百科
一、定义结构体
基本语法:
struct 结构体名字 { 类型 名字; 类型 名字; 类型 名字; ... };
结构体的定义方法三种,请继续往下看。
定义方法一:
struct programmer { char *name; int age; int phone;};
初始化:
struct programmer proTest = {"Garvey", 28, "13823992034"};
定义方法二:
struct { int age; int tag;} str1;
初始化,这个只能使用点语法,具体请往下看。
定义方法三:
typedef struct { char *name; int tag;} structExt;
使用typedef可以创建新类型,现在可以使用structExt定义新的结构体变量了。
我们可以看到,方法一和方法二的区别。方法一声明了结构体名字,但没有声明结构体变量。方法二声明了结构体变量,但没有声明结构体名字。因此我们可以知道:“结构体名字和结构体变量必须有其一,也可以两者都存在”。
结构体名字及结构体变量都存在,例:
struct programmer { char *name; int age; char *phone;} proSuccess, proFail;
二、结构体成员访问和赋值
访问和赋值都是使用点语法
访问:
proSuccess.name;proSuccess.age;proSuccess.phone;
赋值/修改:
proSuccess.name = "Calvin";proSuccess.age = 27;proSuccess.phone = "13138940202";
三、注意点
错误初始化写法,这句话在预编译时就会报错:
proSuccess = {"name", 10, "13732423452"};
写了这么多,都还没输出过任何内容,这里要说的是。使用char定义的变量,输出时要使用%s。例:
NSLog(@"%s- %d - %s", proTest.name, proTest.age, proTest.phone);
PS:使用char定义的变量,不能存储中文(因为我不知道如何输出,输出会变成码,你根本都看不懂)。
好了,写了这么多了,我要休息一下了,眼睛很累... ...
IOS-Object-C学习之结构体使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。