sách gpt4 ai đã đi

c - c中数组的地址分配和指向数组的指针

In lại 作者:太空宇宙 更新时间:2023-11-04 02:51:33 hai mươi bốn 4
mua khóa gpt4 Nike

我是c语言的新手。这是我的代码

char c[]="name";
char *p="city";
printf("\n 1. memory location of array in pointer is %u",p);
p=c;
printf("\n 2. memory location of array in pointer is %u",p);

它给了我输出:

指针中数组的内存位置为177

指针中数组的内存位置为65518

现在检查第一次内存分配的差异

char *p="city"

p中的地址是177,第二次是

p=&c;

p中的地址是65518,为什么?我没有得到数组的地址分配。通常在 c 中声明一些变量时,地址类似于 655... 而在 char *p 时,它是不同的。有什么具体原因吗。

我正在使用 windows 7 32 位操作系统

我的问题是什么时候

char *p="city"

p 中的地址是 177,为什么?

1 Câu trả lời

因为数组名称在分配或传递时衰减为指向第一个元素的指针(分配给第一个元素的地址类型的变量)。

p = c; // & is not needed, and not defined behavior 

printf("%p\n", (void *)&p);

给你地址

关于c - c中数组的地址分配和指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643624/

hai mươi bốn 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com