相关疑难解决方法(0)

为什么数组参数的大小与main中的大小不同?

为什么作为参数发送的数组的大小与main中的相同?

#include <stdio.h>

void PrintSize(int p_someArray[10]);

int main () {
    int myArray[10];
    printf("%d\n", sizeof(myArray)); /* As expected, 40 */
    PrintSize(myArray);/* Prints 4, not 40 */
}

void PrintSize(int p_someArray[10]){
    printf("%d\n", sizeof(p_someArray));
}
Run Code Online (Sandbox Code Playgroud)

c arrays function sizeof

101
推荐指数
7
解决办法
7万
查看次数

如何在C中获取数组的长度?"sizeof"是一个解决方案吗?

可能重复:
C编程语言中数组的大小?
为什么C-Array在传递给函数时有一个错误的sizeof()值?

请参阅下面的代码并建议我使用" sizeof "关键字时有什么不同:

#include<stdio.h>
#include<conio.h>
void show(int ar[]);
void main()
{
    int arr[]={1,2,3,4,5};
    clrscr();
    printf("Length: %d\n",sizeof(arr));
    printf("Length: %d\n",sizeof(arr)/sizeof(int));
    show(arr);
    getch();
}
void show(int ar[])
{
   printf("Length: %d", sizeof(ar));
   printf("Length: %d", sizeof(ar)/sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:

输出是:

长度:10

长度:5

长度:2

长度:1

为什么我会这样; 如果我想将整个数据从一个数组转移到另一个数组,我该怎么办?

建议我如果有人知道.

c

42
推荐指数
1
解决办法
22万
查看次数

在函数中使用数组 - C.

#include <stdio.h>
#include <iostream>

using namespace std;


int write(int arr[])
{

    int n = (sizeof(arr)/sizeof(arr[0]));

    for(int r=0;r<n;r++)
    {
        printf("%d\n", arr[r]);
    }

    return 0;
}

int main()
{
    int numlist[] = {1, 3, 5, 6, 7, 9, 0, 2, 3};

    write(numlist);

    std::string strvar;
    std::cin >> strvar;

}
Run Code Online (Sandbox Code Playgroud)

屏幕上打印的内容只是数字"1".而已.刚开始使用C而我只是试图掌握语法.

c++ arrays function

1
推荐指数
1
解决办法
107
查看次数

标签 统计

arrays ×2

c ×2

function ×2

c++ ×1

sizeof ×1