*s+=1;在c语言中是什么意思

*s+=1;在c语言中是什么意思

s=1L在C中是将1强制为long型赋给long型变量s的意思。显然s是被定义为long型的,由于C对意即整数默认的是int型,所以将int型1赋给一个long型变量s时要把1强制为long型,以使=号左右数据类型匹配。不过这里可以不写L,因为int型比long型“短”,编译器会自动使短的向长的看齐——这叫隐式类型转换。不过写上L是个好习惯,对于代码阅读具有一定的提示作用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-05
*s表示s是一个指针
另外,指针跟地址不是一个概念。
指针是一种变量类型,这种变量类型的值是地址。
就像int变量的值是整数一样。你可以说数字5是整数,但是不能说5是一个int变量

比如
int *s;
int a = 10;
s = &a;
&a计算出来是地址,并把这个地址赋给指针变量
就像int a = 5;把5这个整数赋给整型变量

谭浩强的那本书就没把指针跟地址区别开,误人子弟。
第2个回答  2012-10-05
你好,*s表示s是一个指针。*s表示s指针指向的相应变量的值。
比如。
int *s;
int a = 10;
s = &a;
*s这个时候指向的是int类型的变量a,*s等于a的值,也就是10.
第3个回答  2015-05-17
C语言中1<<i表示将1的二进制每位想左移动i位,末位补0。

左移运算符(<<)是C语言中的一种常见的运算符,一般用法可以通过下面的例子讲解来说明:
如:1<<5
由于1的二进制为0000 0001,左移5位就是将每位向左移动5位,末位补0,所以1<<5后结果为0010 0000,转换为十进制就是32。
第4个回答  2016-05-18
就是变量s取它的相反数。
例如,s=34;
s=-s;
后,s的值就是-34。
如再执行一次s=-s; 后,s的值就是34。
相似回答