c语言write_data(buf[3]+0x30)中的buf[3]是什么意思,

[复制链接]
查看11 | 回复4 | 2018-5-4 11:00:30 | 显示全部楼层 |阅读模式
buf[3]表示数组buf中的第四个元素。write_data(buf[3]+0x30)的意思是将数组buf中第四个元素(数组下标从0开始)转换为字符(因为0x30是字符0的ASCII码值),并赋值给write_data函数的形参。举例说明如下:int buf[4]={2, 3, 5, 1};// 定义一个int类型的数组,共包含四个元素write_data(buf[3]+0x30);// 将buf数组中的第四个元素(数组下标从0开始)转换为对应的字符,即将数字1转换为字符'1',所以该语句等价于write_data('1');...
回复

使用道具 举报

千问 | 2018-5-4 11:00:30 | 显示全部楼层
buf是二维数组或二级指针吧!后面的加号是不是逗号后误写,不然就是使用了全局变量或固定值,还是写的位置是个定值那buf[3] 0x30就是数据了!buf[3]就是数组buf的第三个元素,或指针移动3个...
回复

使用道具 举报

千问 | 2018-5-4 11:00:30 | 显示全部楼层
数组名是数组的首地址,因此buf是buf数组的首地址。区分清楚:buf[3]=*(buf+3),(buf+3)=&buf[3]=&(*(buf+3))*表示去地址里面的内容,&表示取地址,互为逆操作。因此buf[3]就从buf的首地址向后移3次,并取里面的内容,也就是buf的第四个元素。...
回复

使用道具 举报

千问 | 2018-5-4 11:00:30 | 显示全部楼层
没有足够的信息,只能猜测假设buf是一维数组,则可能是下面的用法buf数组可能存储的是0~9buf+0x30 就是将0~9 转换成 ‘0’~‘9’char buf[10]={0,1,2,3,4,5,6,7,8,9};buf[0]+0x30 = '0';...buf[3]+0x30 = '3';...buf[9...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行