① c语言中不同数据类型之间可以相加吗,如下题
可以。进行运算的时候,进行“隐式类型”转换,把int型转换成double再做运算的。这个过程是编译器自己进行的,所以称为隐式类型转换。
② c语言中指针变量可以相加吗其含义是什么
指针变量是有加减运算的,但是要注意以下几点:
1.指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x20000000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址。指针变量可以加减,但是只能与整型数据加减,此时加减的含义并不是其地址值进行了加减,也就是说如果指针变量p的值是0x20000000,那么p=p+2;的值并不是0x20000002,并不是地址值的简单相加,那么地址值加减多少是与指针指向的数据类型相关联的,如果在32位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的地址值变成0x20000008,也就说实际上地址值加了多少呢:sizeof(int)*2这么多。说明白点,我们加减的数字是以指针指向的数据类型为量度的,P+2表示p在内存中前移两个int的距离,如果p不是int类型,而是其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。
2.指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1. p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。 指针变量的自加和自减实际上是与整数1的加减运算。
3.指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。
③ 各位大神 小弟初来咋到 想请教个问题: 在C语言里,float类型的量和int类型的量运算时,这个表达式值的数
float类型的量和int类型的量运算时,这个表达式值的数据是什么啊,是float。两个float量运算,表达式值的数据类型是float类型,两个字符型数据运算呢,表达式值的数据类型是字符型。总之,两个相同类型数据运算结果仍为那个类型,不同类型的数据运算结果为两个数据类型中精度高的那个数据类型。
④ C语言中一个float数和一个int数相加,结果是float型还是int型
结果是float
转换的顺序是
char,short->int->unsigned int->long->unsigned long ->float->double->long double
⑤ c语言结构变量相加
感觉1楼说的有点道理:
我在说点:
scanf("%d %d %d %d %d",&a[i].sco1,&a[i].sco2,&a[i].sco3,&a[i].sco4,&a[i].sco5);
你定义的是指针
*sco1,*sco2,*sco3,*sco4,*sco5;
怎么可以这样赋值 这是指针
定义的时候定义为变量吧
⑥ c语言中有没有办法让几个整型变量同时都增加一个值,比如5和6同时都加2变成7和8。。
如果是一组数都需要类似自加,可以存成数组。
然后在需要的时候,
使用一个循环来依次自加。
⑦ 两个相同类型的指针变量可以做相加减运算吗
应该选择C。A选项两个同类型的指针间可以比较大小,比较原则应该是按照实际内存的高低位比较的。B选项赋值,这个当然是可以的了。D选项两个相同指针变量相减可以获得在之间相隔的同类型元素个数(在某个类型的数组中的应用)。C选项是不可以的,因为两个指针相加什么都得不到,所以规定不允许相加。
⑧ C语言2个变量求和
你要用来输出还是咋弄?
如果输出直接用表达式就可以了
printf("%f,%f,%f,%f",hours1*payrate1,hours2*payrate2,hours3*payrate3,
hours1*payrate1+hours2*payrate2+hours3*payrate3)