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