今天看书的时候,发现C语言和C++的结构体有点不一样,于是查询了一些资料,发现有如下区别:
- C++中可以省略关键词
struct
,C语言不能省略 - C++中可以定义构造函数,C语言不行(目前为止,看的资料里面没有)
以LeetCode中二叉树的定义为例:
C++ 的定义:
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
C的定义:
truct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
参考文献:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
C语言程序设计(浙大版)
算法笔记