相关疑难解决方法(0)

sizeof(&array)返回什么?

问题是:为什么数组的地址等于它在C中的值?

#include <stdio.h>
#define N 10    
char str2[N]={"Hello"};
int main(){
    printf("sizeof(str2): %d bytes\n", sizeof(str2));
    printf("sizeof(&str2): %d bytes\n", sizeof(&str2));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

sizeof(str2): 10 bytes
sizeof(&str2): 4 bytes
Run Code Online (Sandbox Code Playgroud)

我知道str2单独是数组中第一个元素的地址str2.并且当str2它的参数何时sizeof返回整个数组str2的大小.

另外,&str2也是arr中第一个元素的地址,str2但是来自不同的类型(char (*)[N]==指向数组的指针).但是&str2当它是一个论证时,它是如何表现的sizeof

c string pointers sizeof

30
推荐指数
3
解决办法
2万
查看次数

指向字符数组C++的问题

我有我认为应该是一个非常简单的代码片段,但我无法编译,因为我不明白的原因.

以下简化代码将无法编译:

char buffer[9] = "12345678";
char* pBuffer = &buffer;
Run Code Online (Sandbox Code Playgroud)

编译器(g ++)抛出以下错误:

error: cannot convert 'char (*)[9]' to 'char*' in initialization

C++并不完全是我的"原生"语言,但我看过的每个地方都告诉我这应该有用.非常感谢任何想法或建议.

c++

11
推荐指数
2
解决办法
2353
查看次数

标签 统计

c ×1

c++ ×1

pointers ×1

sizeof ×1

string ×1