美文网首页
1-ndk学习之c基础篇(3)

1-ndk学习之c基础篇(3)

作者: ftd黑马 | 来源:发表于2020-01-14 15:07 被阅读0次

前两篇文章简单写了下c语言的基础数据类型,数组类型和指针,这篇文章要写下c语言中的自定义类型,也就是结构体。结构体我理解的是java中的bean实体类,但是要注意c语言中是没有类的概念的。
关键字,struct

struct Student
{
    /**
     * 结构体 默认的所有成员默认都是public的
     */
    char * name;
    int age;
    char sex;
};

在main方法调用:

struct Student student; // 在栈中就定义了
    student.name = "托尼";
    student.age = 99;
    student.sex = 'M';
    printf("name:%s, age:%d, sex:%c \n", student.name, student.age, student.sex);
struct Worker
{
    char * name;
    int age;
    char sex;
}s1, s2; // 可以定义s1 s2, 也可以不定义s1 s2

在main方法中这样调用:

s1.name = "钢铁侠";
    s2.sex = 'M';
    s1.age = 66;
    printf("name:%s, age:%d, sex:%c \n", s1.name, s1.age, s2.sex);

结构体中引用别的结构体如下:

struct Student
{
    /**
     * 结构体 默认的所有成员默认都是public的
     */
    char * name;
    int age;
    char sex;
};
struct Person
{
    struct Student student;
    char * name;
}sp;

在main方法这样调用:

    sp.name = "人类";
    sp.student.name = "帕克";
    sp.student.sex = 'W';
    sp.student.age = 98;

c中有个概念是共用体,即共享一块内存,

union MyUnion
{
    short i;
    int j;
};

int main() {
    union MyUnion myUnion;
    myUnion.i = 100;
    printf("myunion的i=%d,地址是%#x\n",myUnion.i,&myUnion.i);

    myUnion.j = 200;
    printf("myunion的i=%d,地址是%#x\n",myUnion.i,&myUnion.i);
    printf("myunion的j=%d,地址是%#x\n",myUnion.j,&myUnion.j);
    return 0;
}

打印如下:


image.png

c语言其实有用的东西太多,但是我综合网上各种课程,书籍,其实之后要学习到的ndk开发,就先了解到这就足够用了,毕竟我们不是主要学习c语言开发的。

相关文章

网友评论

      本文标题:1-ndk学习之c基础篇(3)

      本文链接:https://www.haomeiwen.com/subject/slkaactx.html