社区
C语言
帖子详情
为什么&buf[0]=buf[0]呢?
nicein
2002-05-17 09:10:16
char buf[2][4];
buf[0][0]='a';
buf[0][1]='b';
buf[0][2]='c';
buf[1][0]='A';
buf[1][1]='B';
buf[1][2]='C';
printf("%d",&buf[0][0]);
printf("%d",&buf[0]);
printf("%d",buf[0]);
printf("%d",&buf[0]);
...全文
710
3
打赏
收藏
为什么&buf[0]=buf[0]呢?
char buf[2][4]; buf[0][0]='a'; buf[0][1]='b'; buf[0][2]='c'; buf[1][0]='A'; buf[1][1]='B'; buf[1][2]='C'; printf("%d",&buf[0][0]); printf("%d",&buf[0]); printf("%d",buf[0]); printf("%d",&buf[0]);
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Flamesong
2002-05-17
打赏
举报
回复
thanks to blactte(想认识我吗?在靠近一点!)
有收获!
jammes
2002-05-17
打赏
举报
回复
同意楼上,结账吧
blactte
2002-05-17
打赏
举报
回复
这是个二维指针问题
对于buf[n][m]来说,因为是个数组,所以数组名可以作为地址来引用
buf代表的地址是整个数组得首地址及buf[0][0]的地址
而buf[0]的地址代表二维数组的第零列的首地址及buf[0][0];&buf[0]的地址代表二维数组的第零列的首地址
所以&buf[0]=buf[0]
理解一维数组中
buf
、
buf
[0]、&
buf
[0]、&
buf
四个符号的含义
本文内容摘自《C语言内核深度解析》一书的深入学习数组部分。 以 int
buf
[100]={0} 为例,集中讨论
buf
、
buf
[0]、&
buf
[0]、&
buf
四个字符含义的内涵。 1、
buf
:有两层含义,一是数组名,sizeof(
buf
) 时就是数组名的含义;二是等价于 &
buf
[0],表示数组的第一个元素的首字节地址,是一个常量值。因此,既然是一个常量值,无论从哪...
理解一维数组中
buf
\
buf
[0]\&
buf
[0]\&
buf
四个符号的含义
已关注 本文内容摘自《C语言内核深度解析》一书的深入学习数组部分。 以 int
buf
[100]={0} 为例,集中讨论
buf
、
buf
[0]、&
buf
[0]、&
buf
四个字符含义的内涵。 1、
buf
:有两层含义,一是数组名,sizeof(
buf
) 时就是数组名的含义;二是等价于 &
buf
[0],表示数组的第一个元素的首字节地址,是一个常量值。因此,既然是一个常量值,无论...
mmap那些事之android property实现之二
基于tmpfs的mmap系统调用过程 前面一篇blog:mmap那些事之android property实现,讲述了android的属性系统是基于tmpfs的mmap来实现内存的共享,只是论述了应用层的使用,并未涉及到内核空间是怎么处理的。 包括如下几个问题: mmap系统调用过程 tmpfs文件针对mmap做了哪些处理?这里包括tmpfs是怎样分配实际的物理内存到共享内存的,然后其他应用
C语言语句YPR[0]=(
BUF
[1]<<8|
BUF
[2]),以及 >> 8 &0xFF如何理解?
C语言语句YPR[0]=(
BUF
[1]<<8|
BUF
[2])如何理解? 这是一个赋值语句,把等式右边的值赋给左边;先来看左边是怎么运算的, 由于移位运算符<<的优先级大于位运算符|,所以先计算
BUF
[1]左移八位,然后再或上
BUF
[2], 或的操作可以理解为两个数相加;通俗理解的话可以举个列子, 假设
BUF
[1]的值为0000 0001b(为方便描述,故用二进制表示) ,左移八位后变成10000 0000b ,
BUF
[2]的值为1 ,然后两者相加变为10000 0001 b 这是算
【C语言】充当右值时,数组名前加不加&的区别
假设数组名是
buf
。 则
buf
和&
buf
充当右值时的区别是:
buf
是数组首元素的首字节地址; &
buf
是整个数组的首地址。 解释: 这两个在值上是相等的,但是意义及数据类型不相同。 &
buf
作右值时,只能赋值给“数组指针类型”的指针变量,即&
buf
得到的是一个数组指针。
buf
作右值时,只能赋给普通的指针变量,该指针变量的类型要和数组的数据类型一致。 意义不相同会导致他们在参与运算的时候有不同的表现(有什么不同?见下例)。 【例】 #include <stdio
C语言
70,027
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章