详解指针C(1)

很多人都在说指针都是地址,我不是这样理解的,最好不要一提到指针就想到地址,这样的话很难学好指针。
我们都知道常用的数据类型:char short int
我们可以先把指针理解为带(* )的类型,我们平常学的数据类型后面都可以加一个变成带(*) 的数据类型
比如
char *, short *, int *
任何我们学过的类型,都可以加上一个( * )或者多个( *),就会变成一个新的类型。

1.“带*类型” 的特征探测:声明

如何声明一个char/short/int类型的变量?
在这里插入图片描述声明带有(*)特征的变量:

在这里插入图片描述声明带有许多(*)特征的变量
在这里插入图片描述

我们可以把它理解为带( * )类型的变量,就相当于一个新的类型。
总结:

1、带有*的变量类型的标准写法:变量类型( * )变量名

2、任何类型都可以带* ,加上*以后就是新的类型

3、*可以是任意多个

2、“带*类型” 的特征探测:赋值

平常常用的数据类型赋值我们都是这样的
int i=10;
其实这样并不是完整的写法,这只是精简的写法,真正的写法应该是int i=(int)10;
char、short、int 类型变量的赋值:
在这里插入图片描述
带*类型的变量的赋值:
在这里插入图片描述
探测数据的宽度:

在这里插入图片描述
在这里插入图片描述
我们发现 char 占一个字节
short占两个字节
int 占四个字节
在这里插入图片描述

我们发现  char * 占4个字节
                short * 占4个字节
                int *    占4个字节

总结,不管你原来是什么类型,只要你加上1个* 就变成一个新的类型,而且数据宽度都是4字节
在这里插入图片描述
我们发现不管你加多少个* 它占的数据宽度都是4个字节

总结:

1、带( * )类型的变量赋值时只能使用“完整写法”.

2、带( * )类型的变量宽度永远是4字节、无论类型是什么,无论有几个( *. )

3、“带*类型” 的特征探测:++ - -

char、short、int类型:
在这里插入图片描述发现最后打印出来的a,b,c都是101.
带*类型:
在这里插入图片描述
发现最后打印的a,b,c分别为101,102,104

在这里插入图片描述

发现最后上面打印的a,b,c都是104.
总结:当带( * )号的这种变量,带上++或者–这种运算的时候,它到底是加几还是减几?
这里有一个公式,它到底是加几还是减几,你去掉一个( * )的数据宽度就是它要加几还是减几。

1、不带*类型的变量,++或者-- 都是假1 或者减1

2、带*类型的变量,可是进行++ 或者 --的操作

3、带类型的变量,++ 或者 – 新增(减少)的数量是去掉一个后变量的宽度

4、“带*类型” 的特征探测:加上/减去 一个整数

在这里插入图片描述
总结:
1、带( * )类型的变量可以加、减一个整数,但不能乘或者除.

2、带( * )类型变量与其他整数相加或者相减时:

带( * )类型变量 + N = 带( * )类型变量 + N*(去掉一个*后类型的宽度)

带( * )类型变量 - N = 带( * )类型变量 - N*(去掉一个*后类型的宽度)

5、“带*类型” 的特征探测:求差值

在这里插入图片描述
总结:

1、两个类型相同的带( * )类型的变量可以进行减法操作.

2、想减的结果要除以去掉一个( * )的数据的宽度.

6、“带*类型” 的特征探测:比较

带( * )的变量,如果类型相同,可以做大小的比较。

在这里插入图片描述
总结:     
     
 带*的变量,如果类型相同,可以做大小的比较。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值