如何将变量值传递给 C 中的数组
How to pass a variable value to an array in C
我是一名试图理解 C 中数组的新手程序员。具体来说,我想获取变量的数值并将其输入数组。我试图将值分配给数组,但失败并显示错误消息。有人可以简单地解释一下如何将一个值推入数组然后能够只访问最后一位数字吗?
我最后一次尝试:
#include <stdio.h>
unsigned int TMR0 = 158;
int main(void)
{
unsigned int V = TMR0;
unsigned int Random[2] = {V};
printf("%d \n" , *(Random+2));
return 0;
谢谢。
unsigned int Random[2];
数组将声明为有两个位置。
Random[0] Random[1] // two accessible positions in that array.
当您将值赋给数组时,
unsigned int Random[2] = { V} ;
值将存储在数组的第一个位置。 Random[0]
.
*(Random+2)
将访问位置 Random[2]
。该数组的哪个位置不可访问。它将导致未定义的行为。
另一件事是,如果您需要将值分配给您必须这样做的两个位置。
unsigned int Random[2] = {V,V} ;
要访问数组中的最后一个元素,
*(Random+1) or Random[1]
希望这个 link 会有所帮助。
您实际上不需要数组来访问数字的数字——您只需要数学。
重要的是要认识到 "digit" 表示特定的数字基数。在计算机中,数字以二进制表示。为了方便起见,它们可以在我们的代码中使用通用的基数来表示:十进制、十六进制和八进制是我们通常在 C 等语言中使用的基数。
因此,要获得以 10 为基数的最后一位 ,您需要取值 模 10:
int val = 158;
int last_digit = val % 10;
printf( "%d\n", last_digit );
如果需要求最后一位以外的数字,可以先整除再取模:
int second_to_last_digit = (val / 10U) % 10;
或者,您可以将数字转换为字符串,然后查看该字符串中的每个字符。但我不打算在这里深入探讨,因为向新程序员提供太多信息可能会造成混淆。
我是一名试图理解 C 中数组的新手程序员。具体来说,我想获取变量的数值并将其输入数组。我试图将值分配给数组,但失败并显示错误消息。有人可以简单地解释一下如何将一个值推入数组然后能够只访问最后一位数字吗?
我最后一次尝试:
#include <stdio.h>
unsigned int TMR0 = 158;
int main(void)
{
unsigned int V = TMR0;
unsigned int Random[2] = {V};
printf("%d \n" , *(Random+2));
return 0;
谢谢。
unsigned int Random[2];
数组将声明为有两个位置。
Random[0] Random[1] // two accessible positions in that array.
当您将值赋给数组时,
unsigned int Random[2] = { V} ;
值将存储在数组的第一个位置。 Random[0]
.
*(Random+2)
将访问位置 Random[2]
。该数组的哪个位置不可访问。它将导致未定义的行为。
另一件事是,如果您需要将值分配给您必须这样做的两个位置。
unsigned int Random[2] = {V,V} ;
要访问数组中的最后一个元素,
*(Random+1) or Random[1]
希望这个 link 会有所帮助。
您实际上不需要数组来访问数字的数字——您只需要数学。
重要的是要认识到 "digit" 表示特定的数字基数。在计算机中,数字以二进制表示。为了方便起见,它们可以在我们的代码中使用通用的基数来表示:十进制、十六进制和八进制是我们通常在 C 等语言中使用的基数。
因此,要获得以 10 为基数的最后一位 ,您需要取值 模 10:
int val = 158;
int last_digit = val % 10;
printf( "%d\n", last_digit );
如果需要求最后一位以外的数字,可以先整除再取模:
int second_to_last_digit = (val / 10U) % 10;
或者,您可以将数字转换为字符串,然后查看该字符串中的每个字符。但我不打算在这里深入探讨,因为向新程序员提供太多信息可能会造成混淆。