1,指针类型决定了指针进行解引用操作的时候,能够访问空间的大小
int* p; *p能够访问4个字节
char*p; *p能够访问1个字节
double* p ; *p能够访问8个字节
//int main()
//{
// /*printf(“%dn”, sizeof(char*));
// printf(“%dn”, sizeof(short*));
// printf(“%dn”, sizeof(int*));
// printf(“%dn”, sizeof(double*));*/
// int a = 0x11223344;
// //int* pa = &a;
// /**pa = 0服务器托管网;*/
// ///*/*char* pc = &a;*/
// char* pc = &a;
// *pc = 0;
// //printf(“%p/n”, pa);
// //printf(“%p/n”, pc);*/
//
// return 0;
//}
2,指针类型决定了:指针走一步走多远(指针的步长)
int*p; p+1 –>4
char*p; p+1 –> 1
double* p; p+1–>8
int main()
{
int a = 0x11223344;
int* pa = &a;
char* pc = &a;
printf(“%pn”, pa);
printf(“%pn”, pa + 1);
printf(“%pn”, pc);
printf(“%pn”, pc + 1);
return 0;
}
3,野指针
(1)指针未初始化
int main()
{
int a;//局部变量不初始化,默认是随机值
int *p;//局部的指针变量,就被初始化随机值
*p = 20;
return 0;
}
(2)指针越界访问
int main()
{
int arr[10] = { 0 };
int *p = arr;
int i = 0;
for (i = 0; i
{
p++;
}
//
return 0;
}
(3)指针指向的空间释放
int* test()
{
int a = 10;
return &a;
}
int main()
{
int *p =服务器托管网 test();
*p = 20;
return 0;
}
如何规避野指针
1.指针初始化
int main()
{
int a = 10;
int* pa = &a;//初始化
int* p = NULL;//NULL- 用来初始化指针的,给指针赋值
}
2.小心指针越界
3.指针指向空间释放即使置NULL
int a = 10;
int *pa = &a;
*pa = 20;
//
pa = NULL;
4.指针使用前检查有效性
二级指针
int main()
{
int a = 10;
int* pa = &a;
int** ppa = &pa;//ppa就是二级指针
//int*** pppa = &ppa;
}
指针数组 – 数组 – 存放指针的数组
int main()
{
int a = 10;
int b = 20;
int c = 30;
int* pa = &a;
int* pb = &b;
int* pc = &c;
//
int arr[10];
int* arr2[3] = { &a, &b, &c };//指针数组
//arr2[0];
int i = 0;
for (i = 0; i
{
printf(“%d “,*(arr2[i]));
}
return 0;
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
大家好,我是鱼皮。 经过了 7 场直播,总时长近 20 小时,我在 自己的编程导航 的第 5 个 全程直播开发 的项目 —— 智能 BI 项目,完结啦! 我在这里对该项目做一个简单的总结,希望让更多需要它的同学看到,把它变成自己的项目~ 项目简介 这次做的是一…