c++语法注意点——指针、引用的运用及其注意点,struct&typedef的爱恨情仇

c++语法注意点(有补充再继续添加)

指针&引用

复合类型:基于基本数据类型定义的类型,即它不能单独存在,典型的就是指针和引用

你肯定没见过这样的定义

*p

以下两种定义的写法:

int *p1,p2;//第一种:*复合类型是修饰变量的,也就是说p1是int型指针,p2则是普通int型变量

int* p1,p2;//第二种:含义同上面写法f相同,p1是int指针,p2则是普通int型变量

int *p1,*p2;//p1,p2都是int型指针

*可以与类型int写在一起,也可以与变量p写在一起,两个想强调的内容不同:

int *p是强调变量具有复合类型

int* p是强调定义的类型是复合类型

但二者的含义是一样的

你可以选择选择一种去写,不要变来变去就可

struct&typedef的爱恨情仇

单链表的定义

typedef struct LNode{
    int data;
    struct LNode *next;
}LNode,*LinkList;

为了方便解释,我们要知道几个变量名的含义

单链表的结构是这样的:
在这里插入图片描述

LNode:链表的结点,L是Link的缩写

LinkList:链表英文名

*next:执行下一个结点的结构体指针

上面代码等价于

struct LNode{
    int data;
    struct LNode *next;
};
typedef struct LNode LNode;//将struct LNode命个别名为LNode
typedef struct LNode *LinkList;//将struct LNode *命个别名为LinkList

通过上面的定义那我们定义一个单链表就简化了

struct LNode{
    int data;
    struct LNode *next;
};

struct LNode *L;//没有用typedef,声明一个指向单链表的指针

typedef struct LNode{
    int data;
    struct LNode *next;
}LNode,*LinkList;

LNode *L;//有用typedef,声明一个指向单链表的指针
LinkList L;//有用typedef,声明一个指向单链表的指针
//以上两种定义含义相同,强调的点不同,
//第一个强调这是一个结点
//第二个强调这是一个链表

其他的注意点,不含typedef

struct typeName{
	int a;
}varName;

//var是变量英文名variable的缩写
//这个;分号必须有,因为可以再{}外声明变量varName,
//此时可以直接使用变量varName,访问结构体内的元素,如varName.a
//但一般类型的定义和变量声明分开

struct typeName{
	
};
//也可以不声明任何变量
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值