C新手,試圖理解指針以及如何使用它們。我知道一個指針是對內存位置的引用,我認爲我得到了基礎知識和簡單示例,但是如何將const char指針的值賦給char?如何獲得const char的值*
當我嘗試我得到警告;
incompatible pointer to integer conversion initializing 'char' with an expression of type 'const char *' [-Wint-conversion]
我明白類型的區別,但我該如何解決它。
下面是代碼:
#include <time.h>
#include <stdbool.h>
#define SUITS 4
#define FACES 13
#define CARDS 52
#define HAND_SIZE 5
struct Card {
char suit;
char face;
};
void dealHand(const char *wFace[], struct Card *wHand[]);
int main(void)
{
//initialize deck array
unsigned int deck[SUITS][FACES] = {0};
srand(time(NULL)); // seed random-number generator
//initialize face array
const char *face[FACES] =
{"Ace", "Deuce", "Three", "Four",
"Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Jack", "Queen", "King"};
struct Card *hand[HAND_SIZE];
dealHand(face, hand); //deal the deck
}
//deal cards in deck
void dealHand(const char *wFace[], struct Card *wHand[])
{
unsigned int c = 0;
char f = wFace[2];
struct Card aCard;
aCard.face = f;
wHand[0] = &aCard;
}
我得到的行警告:
char f = wFace[2];
使用(常量*)似乎沒有成爲溶液澆鑄它。
_ 「我怎麼能一個const char指針的值賦給一個char?」 _問題是,___爲什麼___ –
只是獲得的價值?那個位置。如果有更好的方法。它是什麼或我應該看什麼? – user2300867
如果您在程序運行過程中使用卡的標識符(可能使用'enum')而不是其文本名稱,則可能會更容易。你可以使用他們的文本名稱來輸出給人類。 –