1

如何将 char 指针指向的值存储到整数变量中?我有以下代码:

main ()
{
  int i;
  char *tmp = "10";
  i = (int)tmp;
  printf("value of i is %d",i);
}

我的代码对给定任务最有效吗?我正在使用 Visual Studio 2008。

4

2 回答 2

3

C 中的字符串只是一个字符数组,tmp指向字符串中的第一个字符。您的代码将此指针值(内存地址)转换为整数并将其存储在i.

你真正想做的是strtol在stdlib中使用:

#include <stdlib.h>
main ()
{
  int i;
  char *tmp = "10";
  i = (int) strtol(tmp, 0, 10);
  printf("value of i is %d",i);
}
于 2013-04-16T07:24:53.707 回答
1

您可能应该查看atoi以进行字符串到 int 的转换。

请注意,atoi 不进行错误检查,因此只有在您确切知道输入是什么时才使用它(例如您在示例中使用的常量字符串)。否则使用 E​​mil Vikström 的答案。

于 2013-04-16T07:22:49.273 回答