对 *char 的字符分配不起作用

标签 c pointers char variable-assignment

这是我的 main.c 中使用的一个函数。问题出在char任务。

void takeTurn(int *iap, int *tile, char *cap) {
    //*iap is 1 right now

    printf("\nThe current active player is %d. His character is %c", *iap, *cap);
    //prints The current active player is 1. His character is q.

    if (*iap == 1) *cap == 'X';
    if (*iap == 2) *cap == 'O';

    printf("\nThe current active player is %d. His character is %c", *iap, *cap);.
    //prints The current active player is 1. His character is q.

    . . . 
}

需要做什么才能*cap分配正确的 char给合适的活跃玩家?

最佳答案

您正在使用 == 相等比较运算符,而应使用 = 赋值运算符。

更改这些语句:

*cap == 'X';
*cap == 'O';

改为这些:

*cap = 'X';
*cap = 'O';

关于对 *char 的字符分配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416207/

相关文章:

c - Memcpy 实现的优化

c - C 中的 Trim 函数,用于原地修剪(不返回字符串)

c++ - 删除指针是什么意思?

c++ - L'A' 和 'A' 完全一样吗?

c - 在 C 中右移带分配的数组(中止陷阱 : 6)

C - 将一个数字的奇数位添加到另一个数字的末尾

c++ - 链接究竟是如何工作的?

c - 删除所有非字母字符的 void 函数

c - 为什么++(*ptr) 递增指针?

c++ - Char数据类型和while循环