读书人

C语言作业

发布时间: 2012-11-10 10:48:51 作者: rapoo

C语言作业求助
#include<stdio.h>
void main()
{
int c1,c2;
c1="a";
c2="b";
printf("%c %c\n",c1,c2);
printf("%d %d\n",c1,c2);
}
像这样为什么编译不通过 原因是什么

将int 改为short int 结果又会怎么样 分析其原因

[解决办法]
我编译通过了啊,可是你定义c1和c2是整形的,可是初始化的时候却将字符型的a和b 传给了他们
[解决办法]
单引号,结果应该一样
[解决办法]
编译过 但是有警告

[解决办法]
一个字符串代表一个地址(在我的计算机上是8位字节)

当你用%c输出时,只取1个字节,所以printf("%c %c\n",c1,c2);这句只输出第1个地址的第1个字节,第2个
地址的第1个字节.

当你用%d输出时,只取4个字节(在我的计算机上),所以printf("%d %d\n",c1,c2);这句只输出第1个地址的
前4个字节,第2个地址的前4个字节
[解决办法]
字符形式是单引号,哥们
并且字符型和整型是可以互相转换的
他这里用成了双引号,是以字符串的形式出现,所以编译不通过撒

探讨

我编译通过了啊,可是你定义c1和c2是整形的,可是初始化的时候却将字符型的a和b 传给了他们

[解决办法]
探讨

字符形式是单引号,哥们
并且字符型和整型是可以互相转换的
他这里用成了双引号,是以字符串的形式出现,所以编译不通过撒引用:

我编译通过了啊,可是你定义c1和c2是整形的,可是初始化的时候却将字符型的a和b 传给了他们

[解决办法]
c1 = “a”,其实本质上就是将字符串“a”的首元素的地址赋给c1,也就是a的地址,由于在32位机上地址值是四个字节,而c1只占一个字节,就将这个地址值的最低的那个字节的值赋给c1
[解决办法]
确定可以用字符串给字符赋值?没有错误
探讨
不好意思各位大师 我写错了
#include<stdio.h>
void main()
{
char c1,c2;
c1="a";
c2="b";
printf("%c %c\n",c1,c2);
printf("%d %d\n",c1,c2);
}
这样才对

[解决办法]
额 没见过的+1/...


探讨

确定可以用字符串给字符赋值?没有错误
引用:
不好意思各位大师 我写错了
#include<stdio.h>
void main()
{
char c1,c2;
c1="a";
c2="b";
printf("%c %c\n",c1,c2);
printf("%d %d\n",c1,c2);
}
这样才对

[解决办法]
[code=C/C++][/code]
"a"是一个字符串常量,在程序中使用字符串常量会生成一个指向字符的常量指针。
所以说你把"a"赋给一个int型变量的话,相当于你把这个字符串的地址付给了int
型变量。。

读书人网 >C语言

热点推荐