c语言运行顺序

c语言运行顺序,第1张

初学时要注意格式,运行过了,正确!

#include<stdioh>

void main()

{

int i=0,num=0;

char str[100],c;

gets(str);

do

{

while((c=str[i])==' ')/while循环的作用是把数组st[100]r中的第一个字符赋值给c。

最开始i=0,如果第i个字符是空格,执行语句i++;继续循环。当遇到字符时(也就是开始出现单词时)结束while循环,执行下一步 *** 作/

i++;

if(c!='\0')/如果c的值不等于‘\0’,即不是结束符,那么num++;(计算单词的数量)/

num++;

while((c=str[i])!=' '&&c!='\0')/如果c不等于空格符,那么i++;直到第i个字符为空格时,结束循环。

然后再一次执行do{}while整个大循环,直到整个字符数组的中出现‘\0’,即结束符/

i++;

}while(c!='\0');

printf("number of word :%d\n",num);

}

运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。取模运算符(%)用于计算两个整数相除所得的余数。例如:

a=7%4;

最终a的结果是3,因为7%4的余数是3。

那么有人要问了,我要想求它们的商怎么办呢?b=7/4;

这样b就是它们的商了,应该是1。

也许有人就不明白了,7/4应该是175,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。要想也得到小数部分,可以这样写70/4或者7/40,也即把其中一个数变为非整数。

那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。例如:a=(int)(70/4);

因为70/4的值为175,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了1。那么思考一下

a=(float)(7/4);

最终a的结果是多少?

单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。单目加运算符没有意义,纯粹是和单目减构成一对用的。

优先级是对多个函数并列时候优先算法的特权,没有注意优先级的顺序就会把算法出错,这些优先级是必须记住的。下面的是我自己总结的关于C优先级的口诀当然,应用这个口诀的前提是你必须认识所有的C语言的运算符。优先决括号成员第一; //括号运算符[]() 成员运算符 -全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:<< ,关系: < = <= 等等于(与)不等排第七; //即== !=位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)"三分天下"八九十;逻辑或跟与; //逻辑运算符:|| 和 &&十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)条件高于赋值

C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

各等级运算符如下:

(以下说明中,对传统的1级和2级做了细化,1和2对应传统1级,3和4对应传统2级,所以细化说明共有17级。)

1、基本表达式 1级

基本表达式(Primary expressions),主要是用于运算符之间,做为运算数。

标识,常量,字符串文字量,优先级提升表达式最优先执行。

优先级提升表达式是指圆括号包围的表达式,如“( expression )”

2、后缀表达式 2级

postfix-expression [ expression ],数组下标运算。

postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。

postfix-expression identifier,成员访问,

postfix-expression -> identifier,成员访问,->号之前应为指针。

postfix-expression ++,后缀自增

postfix-expression --,后缀自减

( type-name ) { initializer-list }

( type-name ) { initializer-list , } 复合初始化,C99后新增。

3、单目/一元运算 3级

++ unary-expression 前缀自增

-- unary-expression 前缀自减

unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 , 正号+ ,负号- 位反~ 逻辑否!。

sizeof unary-expression 求类型长度,对表达式求类型长度

sizeof ( type-name ) 求类型长度

4、强制类型表达式 4级

( type-name ) cast-expression,强制表达式成为type-name指定的类型。

5、乘法表达式 5级

“ ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。

6、加法运算符 6级

“ + ”加法运算符;“ - ”减法运算符。

7、移位运算符 7级

<< 左移运算符;>> 右移运算符。

8、关系运算符 8级

<、<=、>、>=关系运算符。

9、相等运算符 9级

“ == ”等于运算符;“ != ”不等于运算符。

10、位与运算符 10级

“ & ”按位与运算符

11、位异或运算符 11级

“ ∧ ”按位异或运算符(Bitwise exclusive OR operator)。

12、位或运算符 12 级

“ | ”按位或运算符(Bitwise inclusive OR operator)。

13、逻辑与运算符 13级

“&&”逻辑与运算符。

14、逻辑或运算符 14 级

“ || ”逻辑或运算符。

15、三元条件运算符 15级

:条件运算符。

16、赋值运算符 16 级

=、 +=、 -=、 =、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。

17、逗号运算符 17级

“,”逗号运算符。

具体可参见下图:

以上就是关于c语言运行顺序全部的内容,包括:c语言运行顺序、在C语言中运算符的运算顺序是如何的、C语言中运算顺序有哪些规律等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9779594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存