c语言 数组名和下标运算符

简介: 前面我们稍微提过数组的属性:数组名就是首元素的首地址,即 &a[0]==a;则:int *p = &a[0] ; 也可写成 int *p = a ;两者一摸一样,平时都是用第二种,因为写起来比较方便。

前言


今天讲一些数组的属性 和下标运算符 的一些应用,算是一个必须要掌握的小的知识点了。


一、数组名:


前面我们稍微提过数组的属性:数组名就是首元素的首地址,即 &a[0]==a;


则:int *p = &a[0] ; 也可写成 int *p = a ;


两者一摸一样,平时都是用第二种,因为写起来比较方便。


e1a1ce017ddb6acdcc0a73847824c52.png

二、下标运算符 [ ]


对于数组:

例如: int a[5] = {5,6,7,8,9}; / / 定义一个数组

由于 数组的名字就是数组的首地址,[ ] 下标运算符里面是偏移量,则 a[0+1]是指数组的首地址向右移动一位,代表指向6这个元素。

前面也讲过 * +空间地址 == 该元素名字,即* &b== b。所以 *a == a[ 0 ],则 *(a+1)== a[1]== 6。


对于指针:

int *p =a; / / 指针指向数组的首元素,即 p == &a。
*(p+4)== p[4] == 4[p]; / / 同数组一样


d5edc696069e087b5c631a7364ee300.png

注意: p[4]==4[p],都是下标的偏移计算,是一样的。


总结


这部分比较难理解 ,大家要好好推导。


相关文章
|
28天前
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
107 2
|
4月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
24天前
|
C语言
【C语言】条件运算符详解 - 《 A ? B : C 》
条件运算符(也称为三元运算符)是C语言中唯一的三元运算符。它通常用于替代简单的 `if-else` 语句。
77 6
|
3月前
|
C语言
C语言判断和运算符联系
在 C 语言中,判断与运算符紧密相关,主要体现在条件表达式的使用上。
205 87
|
3月前
|
安全 C语言
C语言运算符的使用注意点
在C语言中,正确使用运算符能提升代码的可读性和效率。本文介绍了八大注意事项:运算符优先级和结合性影响运算顺序;自增/自减运算符分前缀和后缀形式;逻辑运算符有短路特性;位运算符直接操作二进制位需谨慎;条件运算符简洁但避免复杂嵌套;类型转换避免意外结果;使用括号明确运算顺序。掌握这些要点有助于编写更安全高效的代码。
216 72
|
1月前
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
40 4
|
2月前
|
存储 编译器 C语言
C语言:数组名作为类型、作为地址、对数组名取地址的区别
在C语言中,数组名可以作为类型、地址和取地址使用。数组名本身代表数组的首地址,作为地址时可以直接使用;作为类型时,用于声明指针或函数参数;取地址时,使用取地址符 (&),得到的是整个数组的地址,类型为指向该类型的指针。
|
2月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
46 3
|
2月前
|
C语言
C语言条件运算符详解
C语言条件运算符,也称为三元运算符,是一种简化if-else语句的表达式,形式为:条件?表达式1:表达式2。当条件为真时,计算并返回表达式1的值;否则计算并返回表达式2的值。它可用于快速实现简单的条件分支逻辑。
|
3月前
|
安全 C语言
在C语言中,正确使用运算符能提升代码的可读性和效率
在C语言中,运算符的使用需要注意优先级、结合性、自增自减的形式、逻辑运算的短路特性、位运算的类型、条件运算的可读性、类型转换以及使用括号来明确运算顺序。掌握这些注意事项可以帮助编写出更安全和高效的代码。
62 4