重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
/* 指针 : 专于保存地址的数据结构,占用8个字节,并且可以通过指针保存的地址访问指针指向的内存空间的值; 定义格式 : 指针所指向的数据类型 *指针名称; 初始化 ; 1,定义的同时初始化,如 : int *[n]numP = # //定义几级指针,则写几个"*"; 2,定义后,再初始化,如 : int *[n]numP; numP = # //注 : 变量名称往往决定了从内存哪里开始取值;数据类型决定了从内存取值时,决定要取多少个字节的值, 当然取出来的只是二进制而已;而占位符则决定了将取出来的二进制转换成怎样的形式进行输出; 指向数组的指针 : 定义格式 : 数组数据类型 *指针名称; //注 : 数组名称保存的即为数组的地址,即为数组中第一个元素的地址;因此,在对指向数组的指针初始化时,可直接将数组名称赋值给指针即可; //注 : 指针可做加减运算,如某个指针加1,这里的1指的是单位1,也即指针所指向的数据类型占用的字节数; 案例 : 利用指针遍历字符串 : char string[] = "acssd"; char *stringP = string; while (*stringP != '\0') { printf("%c",*stringP); stringP++; } printf("\n"); 指针和字符串 : 保存字符串的两种方式 : 通过数组保存字符串,如 : char string[] = "adsdds"; //字符串保存位置: 栈中,生命周期 : 自创建起至return或"}"; 通过指针保存字符串,如 : char *string = "assd"; //字符串保存位置 : 常量区中,生命周期 : 自创建起,始终存在,且在常量区中,值相同的变量指向同一块内存空间; //应用场景 : 当需要频繁使用某一个常量时,可避免内存空间的频繁创建和释放,提升程序执行效率; 指针数组 : 就是保存有多个指针的数组 指针指向的数据类型 *数组名称[元素个数]; 指向函数的指针 : //注 : 函数也会占据一块内存空间,因此函数也会有自己的地址,保存在函数名中; 定义格式 : 函数返回值的数据类型 (*指针名称) (形参) //形参名称可省略不写; 通过指针调用函数 : 1,(*指针名称)(实参) 2,指针名称(实参) 应用场景 : 实现入口或类; 常可通过指针实现一个入口,根据用户需求不同,调用不同的函数以实现不同的动作或功能.由此,我们也可以理解"类"这一概念,如在python中的print函数,时间上print函数 仅仅只是一个打印入口而已,print函数会根据用户要求打印的内容不同,调用不同的打印函数,打印相应的内容,如打印整型数据和打印浮点型数据,调用的打印函数就不同; */