iOS-C_Day13___结构体

2015.2.4

#include <stdio.h>

#include <string.h>

//struct

//struct Goods

//{

//    char name[20];

//    float price;

//    long amount;

//};

//

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

//    struct Goods book;

//    strcpy(book.name,"三国演义");

//    //printf("len = %ld\n", strlen(book.name));

//    book.price = 12.8;

//    book.amount = 1000;

//

//    printf("name: %s price: %.2f amount: %ld\n",book.name, book.price,book.amount);

//

//    return 0;

//}

//声明一个数据类型

//typedef struct Student

//{

//    char name[20];

//    int age;

//    int num;

//}STU;

//

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

//{

//    STU stu;

//    strcpy(stu.name, "小红");

//    stu.age = 12;

//    stu.num = 50;

//    printf("name: %s\nage: %d\nnum: %d\n", stu.name,stu.age,stu.num);

//

//    return 0;

//}

//1.用法一

//typedef unsigned char uint_8;

//typedef unsigned short uint_16;

//typedef unsigned int uint_32;

//typedef unsigned long uint_64;

//

//typedef int int_32;

//

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

//{

//    uint_32 a=100;

//    printf("a = %d\n", a);

//

//    return 0;

//}

//2.给结构体取别名

//3.声明复杂类型

//int (*p)(int,int);

//typedef int (*pfunc)(int,int);//int (*)(int,int)

//

//int add(int a, int b)

//{

//    return a+b;

//}

//

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

//{

//    pfunc p=add;

//    printf("%d\n",p(3,5));

//

//    return 0;

//}

//省约结构体名

//常用方法1

//结构体名可以跟数据类型名相同

//typedef struct Student{

//    char name[20];

//    int age;

//}Student;

//常用方法二

//typedef struct {

//    char name[20];

//    int age;

//}Student;

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

//{

//    struct Student stu={"小红",12};

//

//    printf("name = %s, age = %d\n", stu.name,stu.age);

//

//    return 0;

//}

//结构体指针

//typedef struct {

//    char name[20];

//    int age;

//}Student,*PStudent;

//通过-> 运算符访问结构体中的成员变量

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

//{

//    PStudent pstu = NULL;

//    Student stu={"小华",22};

//    pstu = &stu;

//

//    printf("name = %s age = %d\n", pstu->name,pstu->age);

//    return 0;

//}

//结构体数组

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

//{

//    Student *pstu;

//    Student stu;

//    pstu = &stu;

//

//    //scanf("%s%d",stu.name,&stu.age);

//    scanf("%s%d",pstu->name,&pstu->age);

//

//    printf("name = %s , age = %d\n", stu.name,stu.age);

//    return 0;

//}

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

//{

//    Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

//

//    for (int i=0; i<5-1; i++) {

//        for (int j=0; j<5-i-1; j++) {

//            if (stu[j].age > stu[j+1].age) {

//                Student temp=stu[j];

//                stu[j]=stu[j+1];

//                stu[j+1]=temp;

//            }

//        }

//    }

//    for (int i=0; i<5; i++) {

//        printf("%s-----%d\n",stu[i].name,stu[i].age);

//    }

//

//    return 0;

//}

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

//{

//    Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

//    PStudent pstu = stu;

//

//    for (int i=0; i<5-1; i++) {

//        for (int j=0; j<5-i-1; j++) {

//            if ((pstu+j)->age > (pstu+j+1)->age) {

//                Student temp=*(pstu+j);

//                *(pstu+j)=*(pstu+j+1);

//                *(pstu+j+1)=temp;

//            }

//        }

//    }

//    for (int i=0; i<5; i++) {

//        printf("%s-----%d\n",(pstu+i)->name,(pstu+i)->age);

//    }

//

//    return 0;

//}

//结构体嵌套

// 写法一

//typedef struct {

//    char name[20];

//    int age;

//    struct Date

//    {

//        int year;

//        int month;

//        int day;

//    }date;//声明数据类型的时候直接声明变量

//    char sex;

//}Employer;

//写法二

//typedef struct Date

//{

//    int year;

//    int month;

//    int day;

//}Date;

//

//typedef struct {

//    char name[20];

//    int age;

//    Date date;

//    char sex;

//}Employer;

//

//

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

//{

//    Employer xiaohua={"小华",12,{2014,12,4},1};

//    printf("name:%s age:%d %d年%d月%d日,性别:%d\n",xiaohua.name,xiaohua.age, xiaohua.date.year,xiaohua.date.month,xiaohua.date.day, xiaohua.sex);

//

//

//    return 0;

//}

//声明结构体类型

//struct Student{

//    char name[20];

//    int age;

//};

//声明结构体类型同时定义变量

//struct Student

//{

//    char name[20];

//    int age;

//}xiaoHong={"小红",15},xiaoHua;

//struct

//{

//    char name[20];

//    int age;

//}xiaoHong={"小红",15},xiaoHua;

//3.给结构体取名

//typedef struct {

//    char name[20];

//    int age;

//}Student;

//

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

//{

//    //struct Student stu;

//    Student xiaoHong;

//

//    printf("%s %d\n", xiaoHong.name,xiaoHong.age);

//

//

//    return 0;

//}

//结构体大小

//不是成员变量的相加,是成员变量对齐后的内存大小

typedef struct {

double f2;

char name[15];

int a;

long b;

long double l;

float f;

}StructSize;

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

{

printf("%ld\n",sizeof(StructSize));

return 0;

}

时间: 2024-10-14 21:41:28

iOS-C_Day13___结构体的相关文章

iOS中结构体数组

在ios开发中我们经常要使用结构体,但是我们在使用结构体数组的时候xcode会有黄色警告提示. BMKMapPoint *points = new BMKMapPoint[pointCount]; BMKMapPoint 是一个结构体,我动态声明一个结构体数组. delete [] points; 释放一个结构体数组. 编写函数希望返回一个结构体数组的时候 + (CLLocationCoordinate2D *)arrayTransformCoordinate:(NSArray *)array

iOS NSArray,结构体

添加结构体,用nsvlue类 typedefstruct{ NSUIntegerline; NSUIntegerrow; } TileLocation; //转换为NSValue NSValue*value = [NSValuevalueWithBytes:&tileLocobjCType:@encode(TileLocation)]; //转换回结构体 TileLocation loc; [valuegetValue:&loc]; CGRect rect1 = CGRectMake(0,

ios开发-CGRect,CGSize等结构体与NSString字符串互相转换

ios/oc中的结构体如何 转为  一个 NSString 方法呢? 或者一个字符串如何转换为 结构体呢? 系统已经为我们提供了很多好用的方法了! 此处列举一下: 结构体转字符串 NSString *NSStringFromCGPoint(CGPoint point); NSString *NSStringFromCGVector(CGVector vector); NSString *NSStringFromCGSize(CGSize size); NSString *NSStringFrom

(ios开发)基本数据类型和结构体的封装与解封

ios开发基本数据类型和结构体的封装与解封 -- 妖妖 //知识: //因为基本数据类型和结构体不是继承自NSObject,所以它们不可以直接存放到数组和字典中. //数组和字典中只能存储对象类型,其他基本类型和结构体是没有办法放到数组和字典中的,当然你也是无法给它们发送消息的(也就是说有些NSObject的方法是无法调用的),这个时候通常会用到装箱(boxing)和拆箱(unboxing).但是在ObjC中装箱的过程必须手动实现,ObjC不支持自动装箱. //在ObjC中我们一般将基本数据类型

IOS 阶段学习第十天笔记(结构体)

IOS学习(C语言)知识点整理 一.数据结构 1)概念:数据结构是指计算机程序中所操作的对象——数据以及数据元素之间的相互关系和运算. 2)结构体必须有struct 关键字修饰. 实例代码: 1 struct Person{ 2 char name[20]; 3 int age; 4 float height; 5 }; 6 7 int main(){ 8 struct Person Tom={"Tom",22,180};//struct Person 是数据结构 9 //Tom 是变

IOS开发语言Swift入门连载---类和结构体

IOS开发语言Swift入门连载-类和结构体 类和结构体是人们构建代码所用的一种通用且灵活的构造体.为了在类和结构体中实现各种功能,我们必须要严格按照常量.变量以及函数所规定的语法规则来定义属性和添加方法. 与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件.你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口. 注意: 通常一个类 的实例被称为对象 .然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本

ios开发之封装自定义的结构体对象,CGRect,CGSize常用结构体基本使用

ios 中如何使用oc封装一个 结构体到  NSValue中呢? 方法如下: typedef struct{ //自定义一个结构体 int age; int number; }Student; NSValue *stu=[NSValue valueWithBytes:&stu objCtype :@encode(Student)];//把结构体封装成一个对象 Student value2;//定义一个结构体变量来接受从NSValue得到的结构体 [stu getValue:&value2]

iOS 的视图层次结构、继承关系及常用结构体探讨

UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类.负责渲染区域的内容,并且响应该区域内发生的触摸事件 UIView的功能 1.管理矩形区域里的内容2.处理矩形区域中的事件3.子视图的管理 4.还能实现动画  UIView的子类也具有这些功能 下图就是视图的内层次 1)三个结构体 CGPoint.CGSize.CGRect 1.  CGPoint struct CGPoint { CGFloat x; CGFloat y;

小白学开发(iOS)OC_ 常用结构体(2015-08-14)

// //  main.m //  常用结构体 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //      1. 表示范围:NSRange 结构体 NSRange ran

ios结构体

// // main.m // LessonStruct //// Copyright (c) 2015年 池海涛. All rights reserved. // #import <Foundation/Foundation.h> #import "Function.h" int main(int argc, const char * argv[]) { /* //结构体申明 struct 结构体名{ 类型说明符 成员名; ... 类型说明符 }; 结构体,数组都是构造类