C语言——字符串,运算符和表达式之算术

字符串

字符串常量

字符串常量是用双引号括起来的字符序列,且不可修改。

字符串常量在内存中是连续存放字符的ASCII码值,末尾会加“\0".(\0也是一个字符)

现在区别就来了,字符串“a”和字符“a”是不一样的,字符串“a”末尾会加\0,共占两个字节,而字符“a”只占一个字节。

字符串函数

C语言中操作字符串的函数

,使用时需包含头文件

可以来看几个例子:

strlen(s1) 返回字符串的长度,且不包含\0
strcmp(s1,s2)

s1,s2相同,返回值为0

s1

s1>s2,返回值大于0

比如:

#include
#include
void main()
{
	printf("strlen=%d\n",strlen("friendship"));
	printf("strcmp=%d\n",strcmp("friend","friendship"));
	printf("strcmp=%d\n",strcmp("honey","dear"));
	printf("strlen=%d\n",strlen("happy birthday"));
}

那我们可以得到其结果为:

                C语言——字符串,运算符和表达式之算术_第1张图片

运算符和表达式

表达式:由操作数和运算符组成的序列,类似于算数中的四则运算,其中的操作数可以是常量也可以是变量。

算数运算符 +  -  * / ++
关系运算符 >  <  ==  >=  <=  !=
逻辑运算符 !  &&
位运算符 <<  >>
赋值运算符 =及其扩展赋值运算符
条件运算符 ?:
逗号运算符
指针运算符 *  &
求字节数运算符 sizeof
强制类型转换 (类型)
成员运算符 ,->
下标运算符 【】
其他 如:调用函数运算符()

如果对运算符所需要的操作数的个数来分类,那么运算符则可以分为:单目运算符,双目运算符,和三目运算符

单目运算符:对一个运算量进行运算,比如取负运算符

双目运算符:对两个运算量进行运算,比如算数运算符

三目运算符:C语言中,只有一个三目运算符,也就是条件运算符

C语言中存在优先级和结合性,即运算的先后顺序和优先级相同时运算的结合方向

在结合性中,除单目运算符,赋值运算符和条件运算符是右结合性外,其余都是左结合性

在优先级中,单目高于双目,双目高于三目,三目高于赋值,而在双目中,先后顺序为  算                          数,移位,关系,位逻辑,逻辑

表达式求值

  • 按运算符优先级进行
  • 优先级相同,则按C语言规定的结合方向进行

(当然,我们也可以通过人为的加括号来改变优先级,以此来避免出现错误的概率)

运算符和表达式之算术

算数表达式:指用算数运算符和括号将运算量连接起来的式子

%为求余运算符,即结果为一个数除以另一个数的余数,其结果也是整数

  • 两个实数相除,其结果为双精度实数
  • 两个整数相除,其结果为整数

可以来看几个例子,比如:1/2=0   1.0/2=0.5

(1)在类型不同的数中,结果往往按照优先级高的类型来定,从高到低为——

  •  double,float
  • double,unsigned,int,char,shot

(2)求余数运算

         比如:

#include
void main()
{
	printf("%d\n",100%31);
	printf("%d\n",-100%31);
	printf("%d\n",100%-31);
	printf("%d\n",-100%-31);
}

运行结果为:

C语言——字符串,运算符和表达式之算术_第2张图片

 其结果正负与求余运算符左边符号一致

你可能感兴趣的:(c语言)