C语言的关键字,运算符,标识符
关键字
数据类型修饰相关
auto
按照自动的方式进行变量的存储
const
定义常量或常参数
extern
声明外部变量或函数
register
指定变量的存储类型是寄存器变量
static
指定变量的存储类型是静态变量,或指定函数是静态函数
volatile
变量的值可能在程序的外部被改变
数据类型相关
char
字符型数据
short
定义短整型变量或指针
int
整型数据
long
长整型数据
signed
有符号的整型数据
unsigned
定义无符号的整型变量或数据
float
单精度浮点型数据
double
双精度浮点型数据
struct
结构体型数据
enum
枚举型类型
union
联合型数据
void
空型数据
typedef
为数据类型定义别名
流程控制相关
continue
结束本次循环进入下一次循环
break
跳出循环或switch语句
switch
定义switch语句
case
定义switch中的case子句
default
定义switch中的default子句
do
定义do-while语句
while
定义while或do-while语句
if
定义if语句或if-else语句
else
定义if-else语句
for
定义for循环语句
goto
定义goto语句
预处理相关
#include
包含头文件
#define
定义宏
#undef
取消已经定义的宏
#if
定义条件编译的条件
#ifdef
定义条件编译的条件
ifndef
定义条件编译的条件
#elif
定义条件编译的条件
#endif
结束条件编译
其他
return
从函数返回
运算符
优先级 | 运算符 | 含义 | 操作数数目 | 结合方向感 |
---|---|---|---|---|
1 | () [] -> . | 括号(函数等),数组,两种结构成员访问 | 双目 | 左-右 |
2 | ! ~ ++ -- + - |* & (类型) sizeof | 否定,按位取反,自增,自减,正负号,间接,取址,类型转换,求大小 | 单目 | 右-左 |
3 | * / % | 乘,除,取模 | 双目 | 左-右 |
4 | + - | 加,减 | 双目 | 左-右 |
5 | << >> | 左移,右移 | 双目 | 左-右 |
6 | < <= >= > | 小于,小于等于,大于等于,大于 | 双目 | 左-右 |
7 | == != | 等于,不等于 | 双目 | 左-右 |
8 | & | 按位与 | 双目 | 左-右 |
9 | ^ | 按位异或 | 双目 | 左-右 |
10 | | | 按位或 | 双目 | 左-右 |
11 | && | 逻辑与 | 双目 | 左-右 |
12 | || | 逻辑或 | 双目 | 左-右 |
13 | ? : | 条件 | 三目 | 右-左 |
14 | = += -= *= /= &= ^= |= <<= >>= | 各种赋值 | 双目 | 右-左 |
15 | , | 逗号(顺序) | 双目 | 左-右 |
()
括号运算符,表示一个标识符代表一个函数,fcnname()。 还可用于划分优先级,即1+23,如果不记得先算+还是先算,那就写成1+(23)或(1+2)3。最后,括号还可以用于C的强制类型转换。
[]
数组运算符,表示一个标识符代表一个数组,arrname[]。从数组中取一个元素,arr[2]
->
成员访问,用于通过指针变量访问成员,ptr->member等价于(*ptr).member
.
成员访问,访问复合数据类型的成员
~
按位取反,1变0,0变1
++
自增运算符,将变量自身的值加一,分为前++和后++,前++是先执行自增使用增加后的值进行运算,后++是先进行运算,语句执行完毕后再进行++,效率不如前++,因为需要将变量的值临时复制一份
*
取值运算符,声明某一类型的变量。取一个指针变量指向的值
&
取址运算符,取一个变量的地址
<<
左移运算符,将操作数的二进制数据向左移一位,低位补0。当然是对补码移动,但对原码还是补码进行左移其结果都相当于将数据乘以2的n次方
<<
右移运算符,将操作数的二进制数据向右移一位,带符号右移时高位补0,右移n位相当于除以2的n次方,不带符号时高位补符号位,此时非负数还是相当于除以2的n次方,负数就不是了
&
按位与,有0出0,全1出1
^
按位异或,不同为1,相同为0,使用异或交换两个数:a^=b;b^=a;a^=b;
|
按位或,有1出1,全0出0,
&&
逻辑与,全真为真,有假为假,C语言中用1表示负真异,0表示非负假同
?:
条件运算符,C语言中唯一一个三目运算符,表达式A?表达式B:表达式C表示对表达式A的值进行判断,如果A为真,则执行表达式B,否则执行表达式C
标识符
C语言里使用名称区分不同内容,诸如变量名,函数名etc这些名称叫做标识符(Identifier),实际开发总是采用驼峰式或者下划线式来书写标识符,标识符的长度没有限制,但是编译器只会截取一部分使用
它的编写规则:
- Keyword不能当标识符
- 第一个字符应该是 英文字母、下划线
- 后面的每个字符可以是 英文字母、下划线、阿拉伯数字字符
- 大小写敏感
C语言的关键字,运算符,标识符的更多相关文章
- 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符
Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...
- java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)
Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...
- 【Go语言系列】2.2、Go语言基本程序结构:关键字与标识符
什么是标识符 标识符用来命名变量.类型等程序实体.标识符是指Go语言对各种变量.方法.函数等命名时使用的字符序列,标识符由若干个字母.下划线_.和数字组成,且第一个字符必须是字母.通俗的讲就是凡可以自 ...
- C语言关键字、标识符和注释
一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名称. ...
- 李洪强-C语言关键字、标识符和注释
一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名称. ...
- C语言第三节关键字、标识符、注释
学习语法之前的提醒 C语言属于一门高级语言,其实,所有高级语言的基本语法组成部分都是一样的,只是表现形式不太一样 就好像亚洲人和非洲人,大家都有人类的结构:2只 手.2只脚.1个头,只是他们外表不太一 ...
- C语言入门:03.关键字、标识符、注释
一.学习语法之前的提醒 (1)C语言属于一门高级语言,其实,所有高级语言的基本语法组成部分都是一样的,只是表现形式不太一样 (2)就好像亚洲人和非洲人,大家都有人类的结构:2只 手.2只脚.1个头,只 ...
- 一.C语言:关键字、标识符和注释
一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名 ...
- 「C」关键字、标识符、注释、内存分析、数据、常量、变量
一.关键字 C语言提供的有特殊含义的符号,共32个. 一般在Xcode中关键字全部显示紫褐色,关键字全部都为小写.如int.return等. 二.标识符 标识符是程序员在程序中自定义的一些符号和名称. ...
随机推荐
- 练习3:修改withdraw 方法 练习目标-使用有返回值的方法:在本练习里,将修改withdraw方法以返回一个布尔值来指示交易是否成功。
boolean withdraw(double get){ if(get<=balance) { System.out.println("取钱"+get+"元,当余 ...
- SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- javascript中可变值与不可变值(原始值)
字符串原始值修改不了1 var str = "abc"; 2 str[0] = "d"; 3 console.log(str[1]="f") ...
- Android开发之时间日期1
对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子 ...
- Android TextView高级特性使用
TextView一般都是用来显示一段文本,这里说的高级特性主要是一些我们平常不太常用的属性.包括文字阴影.自定义字体.html嵌入多格式.字体加粗.插入图片.这些特性平时开发APP的时候,可能一般使用 ...
- Shell最多可以输入多少个参数?
在脚本编写过程中,通常会涉及到参数的输入.譬如,sh 1.sh 10 20,在执行1.sh这个脚本中,10即为第一个参数,20即为第二个参数.有时,就会有这个疑惑,即shell脚本最多可以支持多少个变 ...
- 数据可视化(8)--D3数据的更新及动画
最近项目组加班比较严重,D3的博客就一拖再拖,今天终于不用加班了,赶紧抽点时间写完~~ 今天就将D3数据的更新及动画写一写~~ 接着之前的博客写~~ 之前写了一个散点图的例子,下面可以自己写一个柱状图 ...
- Javascript定时器(二)——setTimeout与setInterval
一.解释说明 1.概述 setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段 setInterval:周期性地调用一个函数(function)或者执行一段代码. 2.语法 set ...
- LeetCode:3Sum_15
LeetCOde:3Sum [问题再现] Given an array S of n integers, are there elements a, b, c in S such that a + b ...
- Elasticsearch 管理文档
ES支持近实时的索引.更新.查询.删除文档,近实时就意味着刚刚索引的数据需要1秒钟后才能搜索到,这也是与传统的SQL数据库不同的地方. 更多的ES文档资料参考:Elasticsearch官方文档翻译 ...