注册 登录
查看: 337|回复: 10

[其他] 一些C语言问题,求指教

[复制链接]
发表于 2015-1-9 15:54:55 | 显示全部楼层 |阅读模式
#include"stdio.h"
int a[100];
int Value = 0;
int Fun(int a)
{

   Value = sizeof(a);
   printf("Value=%d\r\n", Value);
}
main()
{
        Fun(a);
        printf("sizeof(a)=%d\r\n", sizeof(a));
}
Value = 4
sizeof(a) = 400
为什么两个sizeof(a)  求出来的结果不一样?

回复

使用道具 举报

发表于 2015-1-9 16:45:32 | 显示全部楼层
作用域不同,不一样是正常的啊
回复 支持 反对

使用道具 举报

发表于 2015-1-9 16:45:56 | 显示全部楼层
不是变量名相同,就可以的,还要看作用域的。
回复 支持 反对

使用道具 举报

发表于 2015-1-9 18:12:34 | 显示全部楼层
虚竹 发表于 2015-1-9 16:45
不是变量名相同,就可以的,还要看作用域的。

顶!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-9 18:21:30 | 显示全部楼层
这个应该是函数在调用数组的时候 就 只 是   调  用   数组的  首   地址  
所以久造成了上面的那种结果
回复 支持 反对

使用道具 举报

发表于 2015-1-9 18:46:31 | 显示全部楼层
疯疯疯 发表于 2015-1-9 18:21
这个应该是函数在调用数组的时候 就 只 是   调  用   数组的  首   地址  
所以久造成了上面的那种结果

一个a是数组,一个a是int变量,作用域不同,所以地址不同,不是同一个变量。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-10 15:53:49 | 显示全部楼层
一个在fun函数里面 一个不是
回复 支持 反对

使用道具 举报

发表于 2015-1-10 15:55:19 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-9 18:46
一个a是数组,一个a是int变量,作用域不同,所以地址不同,不是同一个变量。

你好 我有个问题 由于不能发送私信 所以就这样做了 请你加我为好友 你好 我有问题想问你
IAR本来可以打开两个工程的
后来打不开了了 只能打开一个
你的新建工程那块里面可以打开两个其中一个用来对照的

回复 支持 反对

使用道具 举报

发表于 2015-1-10 15:57:04 | 显示全部楼层
最终幻想 发表于 2015-1-10 15:55
你好 我有个问题 由于不能发送私信 所以就这样做了 请你加我为好友 你好 我有问题想问你
IAR本来可以打 ...

不要双击打开IAR工程,而是直接运行IAR程序
回复 支持 反对

使用道具 举报

发表于 2015-1-10 16:04:16 | 显示全部楼层
楮钧 发表于 2015-1-10 15:57
不要双击打开IAR工程,而是直接运行IAR程序

不懂 运行不是双击吗
回复 支持 反对

使用道具 举报

发表于 2015-1-10 16:05:14 | 显示全部楼层
最终幻想 发表于 2015-1-10 16:04
不懂 运行不是双击吗

你双击的是工程文件,而不是IAR软件
回复 支持 反对

使用道具 举报

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

本版积分规则

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