相关疑难解决方法(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/C++ int [] vs int*(指针与数组表示法).有什么不同?

我知道C中的数组只是指向顺序存储数据的指针.但是,差异意味着符号[]和*的区别.我的意思是在所有可能的使用环境中 例如:

char c[] = "test";
Run Code Online (Sandbox Code Playgroud)

如果在函数体中提供此指令,它将在堆栈上分配字符串

char* c = "test";
Run Code Online (Sandbox Code Playgroud)

将指向数据(只读)段.

您是否可以在所有使用情境中列出这两种表示法之间的所有差异,以形成清晰的一般视图.

c c++ arrays standards pointers

37
推荐指数
2
解决办法
4万
查看次数

标签 统计

arrays ×2

c ×2

c++ ×1

function ×1

pointers ×1

sizeof ×1

standards ×1