数字可以同时是字符串和整数吗?

时间:2019-07-20 10:54:33

标签: c cs50

我试图了解CS50提供的问题集中的一行代码。问题出在这里:

  1. 数字是否可以同时是字符串和整数?

  2. 传统上不是将字符串视为字母字符串(即单词等吗?还是段落)?

  3. 如果数字既可以是字符串,也可以是整数,那么区分它的用途是什么?特别是在下面的代码行中。

#include <cs50.h>
#include <stdio.h>

int get_positive_int(string prompt);

int main(void)
{
  int i = get_positive_int("Positive Integer: ");
  printf("%i\n", i);

}

// Prompt user for positive integer 
int get_positive_int (string prompt)
{
   int n; 
  do
  {
    n = get_int("%s", prompt);
  }
  while (n <0 || n > 8);
  return n;
}

2 个答案:

答案 0 :(得分:0)

您的问题的答案为“否”。数字可以是几种C类型之一(例如import asyncio from aiohttp import ClientSession async def get_user(user_id): async with ClientSession() as session: print('calling') async with session.get("http://httpbin.org/headers") as response: print('getting response') response = await response.read() print(response) loop = asyncio.get_event_loop() tasks = [] users = [1,2,3,4] # a list of user ids for user_id in users: tasks.append(asyncio.ensure_future(get_user(user_id))) loop.run_until_complete(asyncio.wait(tasks)) int,...),但只能是其中一种,而double不是数字类型。

我不确定代码不清楚什么。

答案 1 :(得分:0)

“不!”变量不能具有多种数据类型。这可能是可行的,但仅对于表示上下文而言。例如:

String a= "1";
Int b=1;

1)我们可以同时打印两个变量,并且都将给我们相同的输出。

2)我们可以对第二个字符串进行计算,但是要对字符串进行计算,您可能需要将其转换为数字格式-int,double或float。

我看到了您的后续问题。我的第二点很清楚这两个功能之间的区别。您必须将字符串值传递给函数int get_positive_int(string prompt)。但是对于int get_positive_int(int prompt),可能必须将一个整数值传递给此函数。这两个函数都将返回一个整数值。这取决于您在函数内部执行的操作。

对于函数int get_positive_integer(string prompt),您可以从用户那里获得一个字符串并将其转换为整数,然后返回该整数值。