gpt4 book ai didi

c++ - 将字符的地址存储到整数指针

转载 作者:搜寻专家 更新时间:2023-10-31 00:36:01 24 4
gpt4 key购买 nike

众所周知,指针(在 C++ 中)的任务是存储地址。地址的大小取决于计算机体系结构。对于这个例子,让我们假设我们有一台 32 位机器,地址的大小是 4-Byte 。现在,如果我们创建一个整数指针

int x=20;
int * ptr;
ptr = &x; // This is fine the address of x is of 4-Bytes

类似地,如果我们有一个字符 c

char c='a';
ptr = &c; // This puts an error although address size of &c is still 4-Byte.

指针的任务就是存放一个地址那么ptr为什么不存放一个字符的地址呢。虽然整数和字符的地址都是4字节。没有地址的数据类型那么它不应该把地址保存在ptr(指针)中吗?

最佳答案

问题不在于指针变量的大小错误。问题是类型安全之一。您声明指针变量包含 int 的地址。这意味着当您尝试传递 char 的地址时,编译器会报错。它说,“你答应给我一个 int 的地址,但那是一个 char 的地址”。

编译器不会试图保护您免受存储地址的问题。正如您所注意到的,没有。编译器保护您免受的问题是当您取消引用 地址时出现的问题。

关于c++ - 将字符的地址存储到整数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com