Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
所以我这里有一些我一直在研究的代码。它将十进制数字转换为二进制。代码运行平稳,但是困扰我的是变量。代码如下:

#include <stdio.h>
int main()
{
    long int decimalNumber, remainder, quotient;
    int binaryNumber[100], i=1, j;

    printf("Enter any decimal number: ");
    scanf("%ld",&decimalNumber);

    quotient = decimalNumber;
    while (quotient!=0) {
        binaryNumber[i++]= quotient % 2;
        quotient = quotient / 2;
    }
    printf("Equivalent binary value of decimal number %d:       ", decimalNumber);

    for (j = i -1 ; j> 0;  j--)
        printf("%d",binaryNumber[j]);

    return 0;
}


我真的发现变量令人困惑。有人可以告诉我变量实际发生了什么吗?特别是带有binaryNumber[100]binaryNumber[i++]binaryNumber[j]和表达式binaryNumber[i++] = quotient % 2的那个

最佳答案

binaryNumberints的数组,即整数。它的大小为100。它从0 ... 99(binaryNumber[0]是第一个元素,binaryNumber[99]是最后一个元素)开始。该数组可以包含100个不同或相等值的整数。实际上,它们的值不必为0 ... 99,而是int范围内的任何其他值(请阅读注释)。
当您执行int binaryNumber[100]时,您将定义此数组。
当执行binaryNumber[i++]时,可以访问此数组的i位置中的元素,然后递增i。表示您执行i = i + 1;
binaryNumber[j]也是如此。
执行binaryNumber[i++] = quotient % 2时,如前所述,将quotient % 2的值分配给binaryNumber数组在位置i处(并递增i)。

如果您想了解模运算符(%),请阅读here

关于c - 带参数的变量名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36079825/

10-12 14:00