下载资源后端资源详情
C与指针.zip
大小:54.89KB
价格:20积分
下载量:0
评分:
5.0
上传者:Thmos_vader
更新日期:2025-09-22

【C语言指针】深入浅出:指针与取值、数组、函数; 详细剖析:指针函数、函数指针、指针数组、数组指针、双重指针、指针与动态内存分配

资源文件列表(大概)

文件名
大小
test/prt_test.c
2.51KB
test/prt_test.exe
128.6KB
test/ptr_fun.c
552B
test/ts_read.c
1.46KB
test/ts_read_mt.c
2.04KB
指针.md
26.26KB

资源内容介绍

深入浅出:指针与取值、数组、函数; 详细剖析:指针函数、函数指针、指针数组、数组指针、双重指针、指针与动态内存分配个人总结要点:本质: 地址要用指针来存储,指针是用来存储地址的!!!重难点: 指针指向的地址,也就是指针存储的地址!!! 就像整型数据要用整型变量来存储,整型变量是用来存储整型数据的!地址:地址值:ptr/∑取出地址所存的值:*a/sum; 地址所存的值的类型 : int典例:函数指针 void(* Fun)(void) 地址值:Fun取出地址所存的值:* Fun 地址所存的值的类型:void (即为函数类型) Tips:指针(*)则右边是它指向的地址的标识符(也可以称为指针变量),左边为它指向的地址所存的值的类型;函数(Function)则右边为参数,左边为返回值;
/*本质: 地址要用指针来存储,指针是用来存储地址值的!!!重难点: 指针指向的地址,也就是指针存储的地址!!! 就像整型数据要用整型变量来存储,整型变量是用来存储整型数据的!地址:地址值:ptr/&sum;取出地址所存的值:*a/sum; 地址所存的值的类型 : int典例:函数指针 void(* Fun)(void) 地址值:Fun取出地址所存的值: * Fun 地址所存的值的类型:void (即为函数类型) */#include <stdio.h>int main(void){int sum = 10; //定义一个指针整型变量 //声明一个指向整型变量的指针变量 ptr,同时将指针 ptr 指向整型变量 sum 的地址 //int* ptr = &sum; //ptr是一个指针变量,它存了一个地址 *ptr为取出地址所存的值 int为地址所存的值的变量类型 int* ptr;//声明一个指针变量ptr,用于存储整型变量的地址;地址所存的值是整数类型的 ,指针存的也必须是一个整型变量的地址; ptr = &sum;//ptr是一个指针变量,指针存的就是sum的地址(&sum),这行把sum地址值取出来地址赋给指针ptr。printf("sum的地址(值): %d\n", &sum );printf("ptr指向的地址(值):%d\n", ptr);printf("ptr指向的地址所存的值:%d\n", *ptr);printf("________________________\n\n");//指针与数组 int arr[] = {0, 1, 2};int *ptr1;printf("开始指针ptr1的指向地址的值: %d\n", ptr1);printf("数组首地址:%d\n", arr);ptr1 = arr;//给指针ptr1赋值(指向数组首地址)后,指针ptr指向(存储)的地址为数组首地址 printf("现在指针ptr1的指向地址的值: %d\n", ptr1);//打印数组arr的首地址:ptr1与指向arr的首地址,自然打印的都是首地址的值 printf("数组首地址:%d\n", arr);//地址引用printf("*ptr1为取出地址所存的值:%d\n", *(ptr1 + 0));//*(ptr1 + 0)等价于*ptr1也等价于arr[0] printf("*(ptr1 + 1)为取出地址所存的值:%d\n", *(ptr1 + 1));//*(ptr1 + 1)等价于arr[1] //再次说明ptr与arr都能代表数组首地址ptr1[0] = 3;//测试是否能够修改第一个元素值printf("first:%d\n", arr[0]);//发现可以,说明 ptr1[0]等价于 arr[0]; arr[0] = 4;printf("secend%d\n", arr[0]);//留下一个思考int* ptr3 = 10;printf("%d,%d", *ptr3 ,ptr3); /*底层机制理解:int arr[] = {0, 1, 2};int *ptr= arr;声明:声明一个指向整型数组的指针变量,指这个指针变量指向向数组的首地址解释: arr的首地址赋给ptr,ptr是一个整型指针,用于存储一个地址,地址存的值为整数类型 所谓的指针就是把地址所代表的值取出来 即为 (*ptr)int代表 这个值为整型,指针指向的内容是整型;之前说“指针存的也必须是一个整型变量的地址 ” 地址存的值的变量类型 与 指针指向的地址需要存的值变量类型 不一致则需要强制转换 :int* ptr = (int*)malloc(sizeof(int));*/}

用户评论 (0)

发表评论

captcha