鱼C论坛

 找回密码
 立即注册
查看: 2896|回复: 2

刚学指针的几个问题

[复制链接]
发表于 2021-5-6 10:49:58 | 显示全部楼层
本帖最后由 yuxijian2020 于 2021-5-6 10:52 编辑

你要了解指针的本质,指针的本质就是16进制的数字
32位系统下 指针占8个字节;64位系统下,指针占16个字节
只不过,这个数字代表了内存中的地址
然后再看你的问题
  1. printf("%c %d\n",*pa,*pb);//这里就是取 pa 和 pb 的地址中保存的数据,再以 %c 和 %d 的形式输出到屏幕
  2. // %c 就是 获得一个字节的数据,按ANSI码转换成字符输出到屏幕
  3. // %d 就是 获得 int 大小的数据,转换为10进制,输出到屏幕
  4.    printf("%p\n%p\n",pa,pb);//这里就是直接打印16进制的地址
  5.    printf("%p\n%p\n",'C',124);//这里是把'C' 按ANSI码转换为16进制数字输出
  6.   //124 这个数字也是一样,转换为16进制输出到屏幕
复制代码


然后再看下面的

  1. p1=&ch[4];//这里是取 ch 数组中第5个元素的地址赋值给p1
  2.     int *p2; //定义
  3.     p2=3;//这里是强行让p2的地址等于3(虽然计算机中没有这种地址,但是强行赋值是可以的)
  4.     printf("%d %d",*p1,p2); //我觉得我上面说的很清楚 这里你应该了解了
  5.     //*p1 就是 取 p1 地址中保存的数据,再以十进制输出到屏幕
  6.     //p2 就是直接把地址转换为10进制输出到屏幕
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-27 03:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表