当前位置:网站首页 > 技术博客 > 正文

c语言数组类型有哪些



数组是按顺序排列的,同类型对象的集合。(下面所有如果索引0称之为第0个子元素,其他类似)

int arr[4]={1,2,3,4};//声明数组变量arr,并初始化

数组属于不可修改左值,因此只能初始化,无法赋值:

arr={4,5,6,7};//错误

可以通过下标运算符 [ ] 来访问数组元素:

int a=arr[0];//获取第0个数组元素 arr[0]=2;//修改第0个数组元素

如果数组的每一个元素,也是一个数组类型,那么称之为二维数组(多维数组):

int twoArr[3][2]={{1,2},{3,4},{5,6}}; int b = twoArr[1][0];//访问第1个子元素数组{3,4},再访问其第0个int元素3

指针对是某类型对象地址的称呼(类型+地址)。通过&运算符创建指针。

int a=1; int* p=&a;//&a是指针,int*类型,指向对象a,p是存储指针的变量,但在不混淆的情况下也可以把p叫做指针

通过 * 运算符访问指针指向的对象,称之为解引用:

int b=*p;//获取指针指向对象a的值1,初始化b为1 *p=3;//修改指针指向对象a的值为3

数组类型的左值表达式大多数会隐适转换为首元素指针(也称之为退化),转换后的指针不是左值。数组名是数组的标识符,本身不是指针。下标运算符 [ ]不是数组运算符,用于指针和整数的运算符

int arr[4]={1,2,3,4}; int *p=arr;//arr隐适转换为首元素指针 int a=arr[1];//arr隐适转换为首元素指针 int (*arrp)[4]=&arr;//不转换成指针 int (*arrp)[4]=&(1,arr);//错误,逗号表达式返回最右侧的表达式的值,作为整个表达式的值,此时arr作为子表达式转换为了指针,不是左值,因此无法用于&运算符

字符串字面量也是数组类型,因此大多数也会转换成首元素指针,用于初始化字符数组类型除外:

char* cpointer="hello";//转换为首元素指针 char cArr[]="hello";//初始化char[]类型数组,不会隐适转换

  • 上一篇: java集合大全
  • 下一篇: 装饰器模式实际运用
  • 版权声明


    相关文章:

  • java集合大全2025-05-17 10:01:05
  • python创建虚拟环境venv2025-05-17 10:01:05
  • unity ilruntime热更新2025-05-17 10:01:05
  • knn最近邻算法在什么情况下效果最好2025-05-17 10:01:05
  • seo经典案例2025-05-17 10:01:05
  • 装饰器模式实际运用2025-05-17 10:01:05
  • 父类指针指向子类对象,函数调用2025-05-17 10:01:05
  • linux发行版本有哪些?2025-05-17 10:01:05
  • 敏捷框架是什么意思2025-05-17 10:01:05
  • css的选择器及其用法2025-05-17 10:01:05