C语言中数组名的理解
来源:互联网 发布:数据库不能附加 编辑:程序博客网 时间:2024/05/16 12:59
C语言中数组名的理解
数组名并不能当做一个变量,可以认为它只是一种简记缩写(当然是被编译器认可的一种简记缩写),
而且在不同的运用环境中,数组名的含义不尽相同。如下代码中:
#include<stdio.h>
#include<stdlib.h>
void func1(intoneDimeArray[])
{
printf("oneDimeArray代表的地址为:%p\n",oneDimeArray);
printf("oneDimeArray+1代表的地址为:%p\n",oneDimeArray+1);
return;
}
void func2(inttwoDimeArray[][3])
{
printf("twoDimeArray代表的地址为:%p\n",twoDimeArray);
printf("twoDimeArray+1代表的地址为:%p\n",twoDimeArray + 1);
return;
}
void main()
{
int oneDimeArray[3] = { 1, 2, 3 };
int twoDimeArray[2][3] = { {0,0,0},{2,3,4} };
int *p1 =oneDimeArray;//oneDimeArray代表的是&oneDimeArray[0];
*(oneDimeArray+ 1) = 100;//oneDimeArray代表的是&oneDimeArray[0];
int (*p2)[3] = &oneDimeArray;//oneDimeArray代表的是整个数组;
int length1 = sizeof(oneDimeArray);//oneDimeArray代表的是整个数组;
int(*p3)[3] = twoDimeArray;//twoDimeArray代表的是&twoDimeArray[0]
//上一条语句等价于 int(*p3)[3] = &twoDimeArray[0];
int(*p4)[2][3] = &twoDimeArray;//twoDimeArray代表的是整个二维数组
int length2 = sizeof(twoDimeArray);//twoDimeArray代表的是整个二维数组;
func1(oneDimeArray);//oneDimeArray代表的是&oneDimeArray[0];
func2(twoDimeArray);//twoDimeArray代表的是&twoDimeArray[0]
printf("length1 = %d\n", length1);
printf("length2 = %d\n", length2);
}
运行结果为:
oneDimeArray代表的地址为:0038F734
oneDimeArray代表的地址为:0038F734
oneDimeArray+1代表的地址为:0038F738
twoDimeArray代表的地址为:0038F714
twoDimeArray代表的地址为:0038F714
twoDimeArray+1代表的地址为:0038F720
length1 = 12
length2 = 24
- C语言中数组名的理解
- C语言中数组名与&数组名的区别
- c语言零长数组及对数组名的理解
- 理解C语言二维数组名
- C语言中多维数组的理解
- C语言中多维数组的理解
- C语言中数组指针的理解
- C语言中多维数组的理解
- C语言中数组名和指针的区别
- C语言中数组名和指针的区别
- C语言中数组名和指针的关系
- c语言中指针与数组名
- 9、C语言中二维数组及数组名及指向二维数组的指针变量
- c语言数组名的详细介绍
- 关于C语言中对数组取地址的理解
- C语言中数组名并非数组首地址
- C语言中与指针相关问题——论数组名和数组名取地址的关系
- linux c 一站式学习 C语言中数组名和指针的区别
- 索引组织表+创建索引组织表
- vb.net 教程 3-4 窗体编程 公共控件9 ListView 2
- Pull解析XML时出现System.err: org.xmlpull.v1.XmlPullParserException: Expected a quoted string (position:DO
- 378. Kth Smallest Element in a Sorted Matrix
- 闭包
- C语言中数组名的理解
- Redis的快照功能
- Python25行代码人脸识别
- 类加载器
- padas 生成excel 增加sheet表
- fuzhuo-----Problem 1019 猫捉老鼠
- 03-JDBC学习手册:JDBC中几个重要接口和异常处理
- vector中的erase注意事项
- 观察者模式