c++中使用struct,struct中有指针
来源:互联网 发布:淘宝创立于哪一年 编辑:程序博客网 时间:2024/06/16 11:01
c++中使用struct,我就感觉很没必要也,这里的struct类似class;
只是struct默认的成员是public而已,我个人非常讨厌在c++中使用struct的,但是leetcode上刷题时候就遇到了,我心里有阴影了都,特别是struct中还有指针的更甚,我直接跪了;
如每次做有关二叉树的题目,都有这一段,我看到心里都慌了;
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;//这种声明语句表明,表达式*left的结果是TreeNode类型
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
这里的代码改成class写:
class TreeNode{
public:
int val;
TreeNode left; //也是数据成员
TreeNode right; //也是数据成员,只是类型为TreeNode罢了
TreeNode(int x): val(x), left(NULL), right(NULL) {} //使用构造函数初始化列表来初始化其数据成员
};
其实,现在再回头看,没什么不一样也,应该是心里惧怕指针,我很怕指针这玩意的:
说道指针,我都不忍心吐槽啊,从大一开始接触c中指针,大二接触c++,研一,研二,现在了还在纠结,这中间不知道,看了多少回,可是每次认为自己理解之后,仍然下次碰到,还是心里怕怕,哎 都是用的少啊
<C程序设计语言>骨灰级别的书是通过说明内存如何组织的角度来引入指针,指针是能够存放一个地址的一组存储单元(通常为2个或4个字节),接着介绍一元运算符&(用于取一个内存中对象的地址)和*(间接引用运算符);其实这样看没有很多东西哎,都知道;
《C专家编程》这本书,有部分讲到C声明的规则,有个图的,我只是一直记不住,所以感觉很烦;
1、取最左边的标识符
2、查看标识符右边的下一个符号,如果是方括号,【x】,对于每一对,表示“...的数组”;
3、如果是一个左括号 x(),到右括号为止的内容,“返回。。。的函数”;
4、如果左边的符号是一个左括号,(x) ,这个左括号把已经处理的部分声明组合在一起,直到遇见对应的右括号,然后从2步骤重新开始;
5、如果左边的符号是下述之一:
const (表示只读)
volatile( volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象)
* (指向。。。的指针)
继续向左边读符号,直到所读符号不再是左边那3个之一
然后重复第4步
6、剩下的符号形成声明的基本类型
总之呢,看了这么多,下面的题目,我能做出来咩?
1.int *p;//p指向int的指针
2.int **p;//p是一个指向一个int指针的指针
3.int *p[10];//p是一个指向int类型的指针的长度为10的数组
4.int (*p)[10];//p是一个指向。表示长度为10的整型数据数组的。。的指针
5.int *p(int);//p是一个返回指向int的指针的。。。的,参数为整型的函数
6.int (*p)(int);//p是 一个指向,返回值为整型且参数为整型的函数 指针
7.int (*p[10])(int);//p是一个,指向。。的指针,长度为10的数组
1.一个指向整型数据的指针
2.一个指针的指针,它指向的指针指向一个整型数据
3.一个有十个指针的数组,该指针指向整型数据
4.一个指向有十个整型数据数组的指针
5.就一个函数(不是函数指针),该函数有一个整型参数,返回值为一个指向整型的指针
6.一个函数指针,该函数有一个整型的参数,返回值为整型类型
7.一个有十个指针的数组,该数组中的指针指向一个函数,该函数有一个整型参数并返回一个整型数
6、7要跪啊,太绕了,前面几个还好些- c++中使用struct,struct中有指针
- C/C++中struct和typedef struct
- C语言中 typedef struct 和 struct
- C--struct中一级指针与二级指针练习
- struct中使用checkbox
- c和c++中struct有什么不同?C++中的struct和class有什么不同?
- C中struct类型以及指针链表
- c++中有struct为什么还要引入class,c中的struct和c++中的struct的区别
- C/C++中struct研究
- 在objc中使用struct
- C++中struct的使用
- C++中struct的使用
- struct 结构体中 数组和指针
- struct 结构体中 数组和指针
- C/C++中typedef struct和struct的用法
- C/C++中typedef struct和struct的用法
- C/C++中typedef struct和struct的用法
- C#中struct和C中的struct的一个区别
- 对于好书APP的总结
- hdu 2844 Coins
- Web Service有关术语的解释
- kmp算法
- 判断其是否为一个回文串,java实现
- c++中使用struct,struct中有指针
- 用java代码实现二叉树的遍历算法
- java设计模式之命令模式
- 汉语拼音工具包相关实用方法
- Android项目编码的批量修改(GBK转UTF-8)
- springmvc和struts2的区别:
- runloop简单介绍及使用技巧
- LightOJ 1259 Goldbach`s Conjecture(数论)
- lighttpd-1.4.39 : mod_staticfile