为什么把字符串常量转换为整型常量后恒为48

这个程序不论如何改变变量c“”之中的字符,其output恒为48

这个程序并不是把字符串常量转换为整型。

char c;

c="naa";  这里的赋值是有问题的,赋值时,把字符串赋值给其他的量,其实赋值的是他的首地址也就是一个指针,且被强制转换成了一个字符类型,也就是8位二进制数。

下面的代码的输出就不是48了。

#include <math.h>
int main()
{
  int a=0, b,  m, n, i, k = 0;
  char c;
  c = "adcfsdgfg";
  b=a+c;
  printf("%d\n",b);
  c = "a34df";
  b=a+c;
  printf("%d\n",b);
  c = "f34a34sdf";
  b=a+c;
  printf("%d\n\n",b);
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-30
c是char变量,只能存一个字符,把赋值那句改成:c = 'n' ;

还有,字符可以直接和整数相加,字符串好像不行的