C语言—指针和数组

作者:追风剑情 发布于:2019-9-28 10:46 分类:C

示例

//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;
}

运行测试

1111.png

标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号