1. 关于数组的首地址:
#include <stdio.h>int main(void){ char cs[2][3] = { {'A','B','C'}, {'D','E','F'} }; char *p1,*p2,*p3,*p4; p1 = p2 = p3 = p4 = NULL; /* 下面四个指针都是指向了同一个地址 */ p1 = &cs[0][0]; /* 这个最好理解 */ p2 = &cs[0]; p3 = &cs; p4 = cs; /* 这个最方便 */ printf("%p\n%p\n%p\n%p\n", p1, p2, p3, p4); /* 显示地址 */ printf("\n%c %c %c %c\n", *p1, *p2, *p3, *p4); /* 显示内容 */ getchar(); return 0;}
2. 数组其他元素的地址:
例子中,数组的元素在内存中应该是这样排列的:
[0][0] [0][1] [0][2] [1][0] [1][1] [1][2]
下面是通过指针的方式获取数组的第三个元素:
#include <stdio.h>
int main(void)
{
int nums[2][3] = {
{11,12,13},
{21,22,23}
};
int *p1,*p2;
p1 = p2 = NULL;
p1 = &nums[0][2];
p2 = nums;
p2 = p2 + 2;
// p2 = (int *)nums + 2; /* 或者用这一句替换上面两行 */
printf("%d,%d\n",*p1,*p2);
getchar();
return 0;
}
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索指针
, 数组
, int
, printf
, javamelody+c3p0
, 地址
, 元素
c#3 0数据库
,以便于您获取更多的相关知识。