鱼C论坛

 找回密码
 立即注册
查看: 1926|回复: 6

函数传指针。。

[复制链接]
发表于 2015-12-28 13:25:47 | 显示全部楼层 |阅读模式
10鱼币
下面是(利用强制转化类型用十六进制数表示一个象在内存中字节表示情况的程序)
void show_byte(unsigned char* start,int long)
{
       int i;
       for(i=0;i<long;i++)
        {
              printf(“%.2x”,start[i]);
              printf(“\n”);
        }
}
void show_int(int x)
{
       show_byte(&x,sizeof(int));
}
其中void show_int(int x)向void show_byte(unsigned char* start,int long)中传递的是一个指向整形的指针。。但根据void show_byte(unsigned char* start,int long)定义此函数应接收一个unsigned char类型的指针。。。这样的传递是正确的吗?为什么?另外为何要用unsigned char此数据类型表示一个字节?其合理性又在哪里?为什么这样表示?

最佳答案

查看完整内容

请忽略我的渣像素和手写的渣字体 能看到书上的内容就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-28 13:25:48 | 显示全部楼层
1.jpg

请忽略我的渣像素和手写的渣字体 能看到书上的内容就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-28 14:25:20 | 显示全部楼层
传递的是一个指向整形的指针。。但根据void show_byte(unsigned char* start,int long)定义此函数应接收一个unsigned char类型的指针。。。这样的传递是正确的吗
1. 编译器隐式转换 具体详见林锐<c/c++高质量编程> 第四章第三节
大意摘抄如下
"基本类型之间存在如下的兼容关系, char is a int, int is along, long is a float, float is adouble"

2 为何要用unsigned char此数据类型表示一个字节?其合理性又在哪里?为什么这样表示?
一句话: 指针的类型决定了指针的视野
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-28 21:35:24 | 显示全部楼层
ryxcaixia 发表于 2015-12-28 14:25
传递的是一个指向整形的指针。。但根据void show_byte(unsigned char* start,int long)定义此函数应接收一 ...

林锐<c/c++高质量编程> 第四章第三节。。。。。没找到。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 08:29:38 | 显示全部楼层
这一版
2.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 11:30:12 | 显示全部楼层
来支持一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-1-2 11:25:50 | 显示全部楼层

求助。。求助。。在看c++primer时遇到了问题。。。。能问题在我的悬赏贴上。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 16:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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