C语言 - 指针 偏执的太偏执、 2023-10-17 16:56 123阅读 0赞 #### 什么是指针 #### 指针存储的是变量的内存地址。 #### 申明指针的方式 #### 通过`类型*`进行声明,比如 int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch; /* 一个字符型的指针 */ > 无论哪种类型指针的实际数据,都是一个代表内存地址长的十六进制数。 > 不同数据类型的指针之间唯一的不同是: 指针所指向的变量或常量的数据类型不同。 #### 如何使用指针 #### int i = 90; //指针变量,创建一个int类型的指针 int* p = &i; //间接赋值,在指针变量中存储 i 的地址 *p = 200; printf("i的值为:%d\n", i); printf("p的值为:%#x\n", p); printf("p指向的值为:%#x\n",*p); printf("i的地址为:%#x\n", &i); printf("p的地址为:%#x\n", &p); 打印结果显示 i的值为:200 p的值为:0xbbfce8 p指向的值为:200 i的地址为:0xbbfce8 p的地址为:0xbbfcdc #### 指针为什么要有类型? #### 指针是有类型的,而地址没有类型。 地址只是记录开始的位置,类型告诉读取到什么位置结果。 > int\* 读取4字节,double\* 读取8字节 #### 空指针 #### 空指针内存地址为0,内存地址为0x000000。 在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋值一个NULL值是一个良好的编程习惯。 int *p = NULL; //空指针 打印结果为 0 > 大多数情况下,程序不允许访问地址为0的内存,因为该内存是操作系统保留的。(其他100、1000大多也不能访问) > 但是内存地址0有特别重要的意义,标明该指针不指向一个可访问的内存位置。 按照惯例,**如果指针是空值,则假定它不指向任何东西。** ##### 如何检查空指针 ##### if(p) /* 如果 p 非空*/ if(!p) /* 如果 p 为空*/ #### 指针的运算 #### 指针的加减法,就是指针向前/向后移动sizeof(数据类型)个字节。 int ids[] = { 78, 90, 23, 65, 19 }; //ids和&ids[0]输出的地址相同,ids就是数据的首地址 printf("%#x\n", ids); printf("%#x\n", &ids); printf("%#x\n", &ids[0]); int *p = ids; printf("改变前p的值:%#x\n", p); p++; printf("改变后p的值:%#x\n", p); 打印结果 0x8ff9c8 0x8ff9c8 0x8ff9c8 改变前p的值:78 改变后p的值:90 #### 其他 #### > 参考文档 > [http://www.runoob.com/cprogramming/c-pointers.html][http_www.runoob.com_cprogramming_c-pointers.html] [http_www.runoob.com_cprogramming_c-pointers.html]: http://www.runoob.com/cprogramming/c-pointers.html
相关 C语言 - 指针 什么是指针 指针存储的是变量的内存地址。 申明指针的方式 通过`类型`进行声明,比如 int ip; / 一个整型的指针 / dou 偏执的太偏执、/ 2023年10月17日 16:56/ 0 赞/ 124 阅读
相关 C语言指针 文章目录 一、变量的地址 二、指针 三、对指针赋值 四、通过指针操作内存变量 五、再来讨论函数的参数传递 六、空指针 七、数组的 ゝ一纸荒年。/ 2023年07月19日 10:46/ 0 赞/ 46 阅读
相关 【C语言】指针 50、指针变量用来记录地址数据 51、只有记录了有效地址的指针变量才可以使用 52、声明指针变量时需要在变量名称前写\ 53、指针变量名称前加\可以表示指针所捆绑的存储区 亦凉/ 2022年06月12日 04:49/ 0 赞/ 263 阅读
相关 c语言指针 //指针怎么用 // (区分两个概念,指针变量和指向内容,指针变量只保存一个地址值,在这个地址值对应的内存中具体存放的东西叫做指向内内容) 用变量 ╰半夏微凉°/ 2022年06月04日 08:58/ 0 赞/ 279 阅读
相关 C语言指针 C语言中,指针尤为重要。 1可以把指针看作是一个数据类型。 ![SouthEast][] 打印结果: ![SouthEast 1][] 2 在指针声 今天药忘吃喽~/ 2022年05月31日 03:39/ 0 赞/ 268 阅读
相关 C 语言指针 1、CPU 访问内存,是通过内存地址来读写内存数据的,CPU 与内存条硬件之间有个地址总线,CPU 通过地址总线将要访问/写入的内存地址告诉内存条。 2、对于 CPU 而言地 拼搏现实的明天。/ 2022年05月29日 01:54/ 0 赞/ 303 阅读
相关 C语言指针 1、指针的基本知识 (1)定义 int \p; (2)赋值 1) int a;int p=&a 2) int a ;int p; 喜欢ヅ旅行/ 2022年03月26日 05:22/ 0 赞/ 314 阅读
相关 C语言:指针 今天研究了一下午终于把指针研究明白了 include<stdio.h> include<stdlib.h> int main() { 快来打我*/ 2022年03月25日 21:14/ 0 赞/ 328 阅读
相关 C语言-指针 1.指针和指针变量 > 内存区的每一个字节都有编号,这就是地址 > 如果在程序中定义了一个变量,在对程序进行编译和运行时,系统就会给这个变量分配内存单元,并确 àì夳堔傛蜴生んèń/ 2022年01月26日 11:17/ 0 赞/ 375 阅读
相关 C语言指针 变量的地址 我们已经知道,内存变量简称变量,在C语言中,每定义一个变量,系统就会给变量分配一块内存,而内存是有地址的。如果把计算机的内存区域比喻成一个 小咪咪/ 2021年11月10日 23:06/ 0 赞/ 487 阅读
还没有评论,来说两句吧...