簡體   English   中英

反向打印的字符串,不反轉代碼

[英]string printed in reverse without reversing in the code

我試圖通過三元運算符聲明它來打印字符串。 代替任何錯誤,它會反向打印字符串。

有人可以解釋一下嗎?

我期望基於輸入將字符串打印為evenodd

 #include<stdio.h>

    void main()
    {
        int a;
        char *num;

        printf("Enter a number: ");
        scanf("%d", &a);

        num = (a % 2) ? 'odd' : 'even';

        printf("Its %s number", &num);

        getch();
    }

'odd''even'是整數字符常量。

根據C標准(6.4.4.4字符常量)

10整數字符常量的類型為int。 包含映射到單字節執行字符的單個字符的整數字符常量的值是解釋為整數的映射字符表示形式的數值。 包含多個字符(例如,“ ab”)或不映射到單字節執行字符的字符或轉義序列的整數字符常量的值是實現定義的。

所以在這次通話中

printf("Its %s number", &num);

您正在嘗試將變量num的地址輸出為要嘗試輸出字符串的字符串的地址,但是num並不指向字符串。

您必須使用字符串文字而不是字符常量。

你的意思是以下

    num = (a % 2) ? "odd" : "even";

    printf("Its %s number", num);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM