c语言指针入门

学习目标:

c语言指针部分知识

学习内容:

指针类型、野指针、二级指针


学习时间:

两三周之前吧

之前没上传过,这几天浅浅记录一下


学习产出:

  1. 指针类型
int main()
{
	printf("%d\n", sizeof(char*));//4
	printf("%d\n", sizeof(short*));//4
	printf("%d\n", sizeof(int*));//4
	printf("%d\n", sizeof(double*));//4
	//地址大小和32位(4)、64位(8)有关
	return 0;
}

在这里插入图片描述
可以看出不同类型指针都可以存到a地址
下面来看两种指针存到的区别
通过int* pa改变数值后改变4个字节
在这里插入图片描述
通过char* pc改变数值后改变一个字节
在这里插入图片描述

  • 指针类型决定了指针进行解引用操作时,能够访问的空间的大小
    int* p:p能访问4个字节
    char
    p:p能访问1个字节
    double
    p:*p能访问8个字节
  • 指针类型决定了:指针走一步走多远(指针的步长)
    int* p:p+1–>4
    char* p:p+1–>1
    double* p:p+1–>8
  1. 野指针
  • 指针未初始化
int* p;//随机地址
  • 指针越界访问

例如数组10个元素,for循环用指针访问11个

  • 指针指向的空间被释放
  • 规避野指针:
    1.指针初始化
    2.小心指针越界
    3.指针指向空间若被释放,则置NULL
    4.指针使用之前检查有效性
  1. 二级指针
int main()
{//二级指针
	int a = 3;
	int* pa = &a;
	int** ppa = &pa;//ppa是二级指针
	return 0;
}

今天的分享就到此为止吧,每天努力一点点。指针的部分还有好多哟,继续学习吧,或许明天就学完了呢。昨天第一次发博客,好多好多人浏览了,还是很开心的,或许这就是“分享欲”吧,有知识的分享才是高质量分享吖。

猜你喜欢

转载自blog.csdn.net/m0_62101200/article/details/123874148