c语言m的次方问题求解

为什么输出m=8,我不理解


#include<stdio.h>
int main(void)
{
    int m=10;
    m=m^2;
    printf("%d",m);
    return 0;
}

^在C语言中是异或运算,求幂次方用pow函数
代码修改如下:

#include<stdio.h>
#include <math.h> //pow函数需要使用这个头文件
int main(void)
{
    double m=10; //pow函数的第一个参数需要是double类型
    m = pow(m,2);
    printf("%g",m);
    return 0;
}

没有直接的幂运算符,幂幂运算需要pow函数,你这个用的是异或位逻辑运算,10异或2为8,没问题

^是异或符号 1010与0010异或结果是1000,也就是8
求次方你可以直接m*m