#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()

{

	int a[10] = { 0 };

	int i = 0;

	int* p = a;

	for (i = 0; i < 12; i++)

	{

  *p++ = i;

	}

//	return 0;//存放了本不属于自己的空间,出现了问题。如:这个停车位本不是我们的,不过我们非要停车在这里,就会出现问题。

//}

//如何避免野指针

//1.指针初始化。

//2.小心野指针越界

//3.指针指向空间释放及设置NULL

//4.指针使用之前检查其有效性


//指针运算

//1.指针+-整数。2.指针-指针。3.指针的关系运算


int main()

{

	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	int i = 0;

	int sz = sizeof(arr) / sizeof(arr[0]);

//	int* p = arr;

	int* p = &arr[9];

	for (i = 0; i < sz; i++)

	{

  printf("%d ", *p);

//  p += 1;

  p -= 1;

	}

	return 0;

}

//指针-指针得到的绝对值是中间元素的个数,两个指针要在同一个空间

//strlen模拟


int my_strlen(char* str)

{

	char* start = str;

	char* end = str;

	while (*end != '\0')

	{

  end++;

	}

	return (end - start);

}
int main()

{

	char arr[] = "bit";

	int len = my_strlen(arr);

	printf("%d\n", len);

	return 0;

}

//指针和数组

//int arr[]={1,2,3,4};

//int* p=arr;数组可以通过指针访问。


//二级指针


int main()

{

	int a = 1;

	int* pa = &a;

	int** ppa = &pa;

	return 0;

}


//指针数组。存放指针

int main()

{

	int a = 20;

	int b = 30;

	int c = 40;

	int* arr[] = { &a,&b,&c };

	int i = 0;

	for (i = 0; i < 3; i++)

	{

  printf("%d\n", *(arr[i]));

	}

	return 0;

}