【发布时间】:2019-09-03 04:44:40
【问题描述】:
我们可以在 C 中分配一个字符串,如下所示:
char *string;
string = "Hello";
printf("%s\n", string); // string
printf("%p\n", string); // memory-address
并且可以按如下方式进行编号:
int num = 4404;
int *nump = #
printf("%d\n", *nump);
printf("%p\n", nump);
那么我的问题是,为什么我们不能像处理字符串一样在 C 中分配一个指向数字的指针?例如,做:
int *num;
num = 4404;
// and the rest...
是什么让字符串与其他原始类型有根本的不同?我对 C 很陌生,所以任何关于两者之间差异的解释都会非常有帮助。
【问题讨论】:
-
C 中的字符串存储为字符数组。
-
num = 4404;在使用随机地址的系统中究竟在哪里?现在,对于一些 LED 等具有固定地址的嵌入式板,它确实有意义,但那些是“独立系统”,而不是“托管系统”。 -
重复:“Pointer from integer/integer from pointer without a cast” issues。 TL;DR 语言根本不允许这样做,而是使用显式转换。
标签: c