编程学习篇之C语言操作符

一、算术操作符。
首先了解一下算术标识符都有哪些:+、-、、/、%。
这些运算符都是最基础的操作符,不做过多介绍。但要注意“%”只能用于整型。
二、移位操作符。
移位操作符有两种:>>(右移操作符)、<<(左移操作符)。
特别注意右移操作时分为两种情况:
1、算术右移;
2、逻辑移位。
算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;
逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。
注意:
1、移位操作符不能直接赋值改变变量。
如果需要改变变量需要这样输入:a>>=1;
2、左移操作相当于/2;
右移操作相当于
2。
三、位操作符。
位操作符包括:&(按位与)、|(按位或)、^(按位异或)。
这三个操作符也非常简单,在前面的交换两数内容时有提到过用法。
需要注意的是,这三个操作符操作的必须是整数。
四、赋值操作符。
赋值操作符在之前的程序代码中经常出现,其操作符有:=、+=等。
注意在连续赋值时,应从右往左赋值,例如:
a=x=y+1;
输出时a的值就应是y+1。
五、单目操作符。
单目操作符有:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、--、、(类型)等。
需要注意的是:
1、&是取地址符,%p打印地址。
2、sizeof()是操作符,不是函数!
3、++的前置和后置。
4、
在这里是间接访问操作符,主要和指针相关。
5、(类型)为强制类型转换操作符,例如强制将浮点型数转化成整型数时:
六、关系操作符。
关系操作符主要是:==、>=、<=。
主要出现在条件的比较判断上,如:if语句、for循环等。
七、条件操作符。
1、exp1 ? exp2 : exp3 ;
三目运算符,当exp1结果为真,表达式结果为exp2,为假结果为exp3。
2、exp1 , exp2 , exp3
逗号条件句的运算规则是从左往右依次运算,其结果是最后一个表达式的结果。
八、其他操作符。
1、下标引用操作符 [ ] :多见于数组。例如:arr[2]。
特别注意:arr[2]与*(arr+2)是等价的。
2、函数调用操作符 ( ) :这个操作符十分常见,不做过多解释。
3、结构成员访问操作符?. 和 -> :多见于结构体中。

原文地址:https://blog.51cto.com/14235518/2376312

时间: 2024-10-07 16:59:12

编程学习篇之C语言操作符的相关文章

编程学习笔记之D语言(二)

D语言作为系统级语言,支持内嵌汇编语言,那么就来试一试,不知道写什么好,就模仿erlang的time:tc好了. time:tc(Module, Function, [Arguments]),  erlang的tc函数可以测试FUnction的执行时间. 现在用 D语言内嵌汇编模仿一下这个函数,精确到CPU时钟周期. void tc(lazy void fun)  {   int time1, time2;   asm   {     rdtsc     ;           //通过RDTS

shell脚本编程学习笔记-整数二次元比较操作符

1.1 下表为常用二次元比较操作符 我们也可以通过man test查看 提示 (1) "<"符号是小于的意思,if[[ "$a"<"$b" ]], if[[ "$a"\<"$b" ]].在单括号中需要转义,因为在shell也用<和>做重定向. (2) ">"符号是大于的意思,if[[ "$a"> "$b"

JAVA学习篇--JAVA的两种编程模式对比

在Drp项目中,讲解了两种编程模式Model 1和Model2,下面是对这两种模式的简单理解,以及由于Model2是基于MVC架构的模式,就将我们易混淆的MVC与我们之前学的三层架构进行对比学习一下. Model1 所谓Model1就是JSP大行其道的时代,在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应.用少量的JavaBean来处理数据库连接.数据库访问等操作. 代码示例:修改用户信息 主页面的js跳转: function

【DevStore实用篇】8大有趣的专业编程学习网站

摘要: 1.很有影响力的趣味编程网站Codecademy Codecademy在今年4月全新改版,启用了全新的设计风格,新网站界面漂亮,充满了极客的味道.而在今年年初独立注册用户已经突破 2400 万. 适用人群:趣味性十足,适合没有编程基础的新手入门,还有中文版本,适合国内用户使用. code.org是一家非盈利组织,它的宗旨就是让 CS(计算机科学)这门学科能够进入到全球的每一所学校中去.主推项目之一是“一小时编程”,将会面 向全世界开放并推广,而且不会针对任何特定的等级水平,处于任何年龄段

Android多线程编程之线程池学习篇(一)

Android多线程编程之线程池学习篇(一) 一.前言 Android应用开发中多线程编程应用比较广泛,而应用比较多的是ThreadPoolExecutor,AsyncTask,IntentService,HandlerThread,AsyncTaskLoader等,为了更详细的分析每一种实现方式,将单独成篇分析.后续篇章中可能涉及到线程池的知识,特此本篇分析为何使用线程池,如何使用线程池以及线程池的使用原理. 二.Thread Pool基础 进程代表一个运行中的程序,一个运行中的Android

C语言/C++编程学习:不做C/C++工作也要学C/C++的原因!

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制). C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制. 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样.之所以说C++比C更先进,是因为" 设计这个概念已经被融入到C++之中

Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]:大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样.但是大多数的Java代码都不是由开发JDK的程序猿写的,而是像我们这样的普通程序猿.很多人都会碰到过这样的情况:你实现了一个新功能或修复了一个缺陷,并且对自己的修改很满意.但其他人看了你的代码后--也许发生在代码审查环节,完全不买账!对于什么是好代码,什么是坏代码,存在分歧很正常!设计模式的改变设计模式是人们熟悉的另一种设计思想,

J2EE学习篇之--Struts2技术详解

前面说到了Struts1的相关知识,下面来说一下Struts2的相关知识,我们知道现在Struts2使用的比Struts1多,Struts2已经替代Struts1成为主流的框架了... 摘要 Struts2是在WebWork2基础发展而来的.和struts1一样, Struts2也属于MVC框架.不过有一点大家需要注意的是:尽管Struts2和Struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的.那么既然有了struts1,为何还要推出struts

Linux下编程学习一

本篇主要记录一些在学习LINUX下编程时,, C和C++语言的一些基础的常识, 一. 函数指针 void MyFun(int x); 函数声明 void (*FunP)(int ); 函数指针声明 下面是C和C++中的指针定义  int (*pt2Function)(float, char, char) = NULL; // C普通函数指针 int (TMyClass::*pt2Member)(float, char, char) = NULL; // C++中指向静态函数的指针 int (TM