【发布时间】:2011-07-12 18:38:52
【问题描述】:
是否有给定一个类似"my example\n" 的字符串来获取指向它的指针?例如,&"my example\n" 或 &{"my example\n"}?
编辑:我想问一些基本的问题是我昨晚没有睡觉的结果。嗯,无论如何,谢谢你的帮助。
【问题讨论】:
标签: c string pointers reference
是否有给定一个类似"my example\n" 的字符串来获取指向它的指针?例如,&"my example\n" 或 &{"my example\n"}?
编辑:我想问一些基本的问题是我昨晚没有睡觉的结果。嗯,无论如何,谢谢你的帮助。
【问题讨论】:
标签: c string pointers reference
已经是指针了:
char *string = "my string\n";
string 将是一个指向文字字符串的指针。
【讨论】:
sizeof 会发生什么),但在大多数情况下它会衰减为一个指针。
已经是地址了。
示例:char * addr= "my example\n";
这里,变量addr保存了字符串的地址。
【讨论】:
对于您的代码,字符串常量显示为指针;特别是指向字符串中第一个字符的字符指针 char*。
【讨论】:
为了更严格:字符串文字的类型为const char[]。但是const char[] 可以隐式转换为const char*。所以你可以通过赋值轻松获取指针
const char* p = "string";
请注意,如果您的下一行是
const char* p1 = "string";
--p1的值不保证等于p的值:不同的字符串常量可能有不同的地址(但不是必须的)。
请注意,p 将是指向第一个字符而不是整个字符串的指针。
另一个警告是,您不应该尝试获取char* 指针(通过将const 强制转换),因为这将导致未定义的行为。例如,编译器可能会将字符串文字放入只读内存中,程序就会简单地崩溃。
【讨论】: