示例
//Visual Studio中加上这句才可以使用scanf()
//否则只能使用scanf_s()
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#define SIZE 4
//argc: 参数个数 argv[]: 参数数组
int main(int argc, char *argv[])
{
short dates[SIZE];
short * pti;
short index;
double bills[SIZE];
double * ptf;
pti = dates;//把数组地址赋给指针
//pti = &dates[0];//和上面那句等效
ptf = bills;
//ptf = &bills[0];//和上面那句等效
printf("%23s %10s\n", "short", "double");
for (index = 0; index < SIZE; index++)
printf("pointers + %d: %10p %10p\n", index, pti + index, ptf + index);
//指针+1,指针会移到下一个存储单元所在内存地址(以字节为单位)
//short数组的指针+1,指针会往后移两个字节,因为1个short占两个字节。
//注意:内存地址是常量类型
if (dates + 2 == &dates[2])
printf("内存地址相同\n");
if (*(dates + 2) == dates[2])
printf("值相同\n");
//操作数组时,可以使用指针表示法,也可以使用数组表示法
system("pause");
return 0;
}
运行测试