sizeof在两函数中返回结果不同

问题描述

sizeof在两函数中返回结果不同

ddd中返回的是2,main中返回的是3

 #include<stdio.h>
void ddd(int a[]){
    printf("%dn",sizeof(a)/sizeof(int));
}
int main(){
    int a[]={3,4,6};
    ddd(a);
    printf("%dn",sizeof(a)/sizeof(int));
}

解决方案

ddd中返回的是2?
应该是1,因为参数a[]退化为指针。

解决方案二:

http://codepad.org/XXp7GrT5
在线验证
1
3

时间: 2024-09-21 14:20:17

sizeof在两函数中返回结果不同的相关文章

c++-C++函数中返回一个对象

问题描述 C++函数中返回一个对象 class A{ private: int data; public: A(int x=0):data(x){} A get1(); A get2(); }; A A::get1(){ return A(3); } A A::get2(){ A a; a.data=3; return A; } ``这两种到底有什么区别啊 如果再把返回类型改成A&呢,又有什么区别呢 A a=get1(),b=get2(); 究竟是局部变量先销毁还是先赋值 解决方案 区别很小,主

《C++面向对象高效编程(第2版)》——3.16 从函数中返回引用

3.16 从函数中返回引用 C++面向对象高效编程(第2版)要尽可能避免从函数返回引用.原因如下: (1)能从函数安全返回对某对象的引用(假定为foo)时,该函数不能创建对象foo.否则,谁对新创建对象的存储区负责?因为它不能是局部对象,这意味着在调用foo()之前, 左值(L-value)语义的含义 左值可用在赋值操作符的左则(LHS).例如,a = b表示a将被修改,而且它是一个左值.许多C++(和C)的操作符都要求正确地操作左值.所有其他操作符与赋值号结合的操作符,例如,+=./=等都是左

PowerShell小技巧之从函数中返回多个值_PowerShell

假设一个PS脚本函数需要返回多个值,最好的办法是返回对象并且存储对象独有的属性. 这里有一个不错的方法.它能轻松的返回你想要的多个信息,并将结果分配给多个变量: function Get-MultipleData { Get-Date 'Hello' 1+4 } $date,$text,$result=Get-MultipleData "The date is $date" "The text was $text" "The result is $resu

在Oracle的函数中,返回表类型的语句_oracle

Oracle的function中怎么返回表变量? 太晚了,过多的理论知识就不说了,下面简单地说实现吧!.. 1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: 复制代码 代码如下: create or replace type t_table is table of number; 上面的类型定义好后,在function使用可用返回一列的表,如果需要多列的话,需要先定义一个对象类型.然后把对象类型替换上面语句中的number: 定义对象类型: 复制代码 代码如

从函数中返回多个值的方法

原文: http://blog.csdn.net/testing_is_believing 第一种方法是利用全局变量,因此根本不用返回,只要直接给全局变量赋值即可. 例: Dim intNumber_1: intNumber_1 = 40 Dim intNumber_2: intNumber_2 = 80   Public Sub PassValues     intNumber_1 = intNumber_1/4     intNumber_2 = intNumber_2/4 End Sub

【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数

问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:    问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法不认识最后返回的是给ajax的data,而是以为要去找这个页面所以并未找到!! 1 @RequestMapping("/queryAllDisease") 2 @ResponseBody 3 public PageInfo<Disease> queryAllDisease

在C#中如何在函数参数中返回结构数组?

函数|数组 头晕脑涨地研究了一天,就为了实现在函数的参数中返回结构数组. 现供大家分享,节省学习时间. 实例:  /// <summary>  /// 用户信息结构  /// </summary>  public struct TUSER  {   public string LoginName;   public string LoginPass;   public string TrueName;   public string EMail;   public int Leve

.net中的函数可以返回多个值

函数 .net中的函数可以返回多个值了通过out关键字private string TestOut(out char i) { i = 'a';return "good study";}private void button_Click(object sender,System.EventArgs e) {char i;//不必初始化string getReturn = TestOut(out i);richTextBox1.AppendText("方法执行的返回值是:&qu

c++-C++引用变量问题,函数中临时变量返回引用

问题描述 C++引用变量问题,函数中临时变量返回引用 C++ primer plus第六版引用一节,说不能在函数中新建一个变量,并将其引用返回.道理我都懂,就是说函数调用完后,那部分临时内存会释放.可是为什么我自己写的下述代码不报错,反而能正常运行呢? #include using namespace std; struct free_throws //此处定义一个结构体 { int i; }; const free_throws & clone2(free_throws & ft1, f