从零开始学习C语言日记——DAY31指针-操作符优先级补充

一、操作符的属性

复杂表达式的求值有三个影响的因素。

1.操作符的优先级

⒉操作符的结合性

3.是否控制求值顺序。

两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。操作符优先级

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第1张图片

 从零开始学习C语言日记——DAY31指针-操作符优先级补充_第2张图片

 从零开始学习C语言日记——DAY31指针-操作符优先级补充_第3张图片

 

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第4张图片

 

指针是什么?

在计算机科学中,指针( Pointer )是编程语言中的一个对象,利用地址,它的值直接指向( points to )存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针"。意思是通过它能找到以它为地址的内存单元。

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第5张图片

 

指针是用来存放地址的,地址是唯一标示一块地址空间的。

指针的大小在32位平台是4个字节,在64位平台是8个字节。

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第6张图片

 

那么如果都一样还需要类型吗?

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第7张图片

 

窗口内存调试*pa确实指向a的地址11223344

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第8张图片

 

然后我们将int改char后会发生什么

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第9张图片

 

 

可以看到里面的44被改成了00

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第10张图片

 

这说明只是类型发生了变化他们的访问权限就发生了变化

如果我是int类型解引用时访问了4个字节

如果我是char类型解引用时只访问了1个字节

例子2

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第11张图片

 

如果是数组那么取地址会一样吗

结果是取到的地址都是相同的地址

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第12张图片

 

第一个结果相同但是后面的结果不相同整型指针+1会+4(4个字节)跳过一个整型

而字符指针+1则会+1(1个字节)跳过一个字符型

总结

  1. 指针类型决定了:指针解引用的权限有多大
  2. 指针类型决定了,指针走一步,走多远(步长)

例子

从零开始学习C语言日记——DAY31指针-操作符优先级补充_第13张图片

 

此程序可以使每循环一次找到数组一个元素的地址因为都是相同的int类型,

每次+1都可以使跳过一个字节。

你可能感兴趣的:(笔记,学习,c语言,开发语言)