java结构体指针_C语言基础及指针⑦结构体与指针

这篇博客详细介绍了C语言中的结构体和指针的使用。从结构体的声明、简单使用、多种写法、结构体嵌套、结构体数组、动态内存分配到结构体与函数指针的结合,每个主题都有清晰的示例代码。同时,文章还提到了类型别名的概念,并以JNI接口的结构体为例进一步说明。最后,作者预告下一篇文章将讨论C语言中的IO操作。
摘要由CSDN通过智能技术生成

接续上篇[C语言基础及指针⑥字符操作](http://www.jianshu.com/p/b7e6fc094087)

如果说类是java中结构化数据类型的核心 , 那么结构体就是C语言中结构化数据类型的核心 。在java中我们常有这样的写法:

```java

public class Product {

private String name ;

private String desc ;

// get set ...

}

```

这种常见的javabean的写法 , 在C语言中可以用结构体来表示 , 关键字`struct`:

```c

struct Product {

char* productName;

char* productDesc;

};

```

在学习C语言的结构体的时候 , 我们可以类比成java中的类 , 只是这个类比较特殊,结构体中只有声明 , 函数没有实现 , 属性也不能初始化 , 一般定义在头文件中 。就好比声明了一个抽象类 , 里面什么动作也不做 , 属性只是声明一样 , 都需要继承或是外部去赋值 。

### 结构体的简单使用:

```c

// 定义一个结构体

// 一个结构体相当于一个java中的类 , 结构体中只有声明 , 函数没有实现 , 属性也不能初始化 , 一般定义在头文件中

struct Person

{

char* name;

int age;

};

struct News {

// 使用字符数组 , 在赋值的时候和字符指针略有不同

char title[128];

char* content;

};

/*简单使用结构体*/

void makeSimpleStruct() {

// 使用结构体 , 使用字面量的形式创建一个结构体

struct Person person = { "zeno",21 };

// 打印

printf("输出:姓名 - %s ; 年龄 - %d\n", person.name, person.age);

//另一种创建结构体的方式

struct Person person2;

person2.name = "非我";

person2.age = 23;

printf("\n输出:姓名 - %s ; 年龄 - %d\n", person2.name, person2.age);

struct News news;

//news.title 是字符数组 , 不能直接 news.title = "xxx" , 需要使用strcpy()函数

strcpy(news.title, "我是新闻标题");

news.content = " 我是新闻正文";

printf("\n\n输出:\n标题 \n %s \n正文:\n %s\n", news.title, news.content);

}

```

> 友情提示:

1.结构体的两种创建方式,①通过字面量的方式创建 。② 通过定义结构体变量然后给成员赋值 , 类似对象给成员属性赋值。

2.字符数组的赋值,不能直接`="x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值