C语言高速入门系列(二)

-----转载请注明出处coder-pig

本节引言:

在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行!

在这一节中我们会对C语言的基本的语法进行进一步的学习!

C语言是一门语言,能够和英语进行类比,英语句子 = 单词 + 语法

相同C语言的代码语句,也有着一套自己的规则!

废话不多说,直接正文!

本节学习路线图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

正文:

1.基本字符集

1.1 标识符

①何为标识符:在C语言中,符号常量,变量,数组,函数等都须要一定的名称,我们把这样的名称成为标识符

②标识符划分:keyword,提前定义标识符和用户标识符。

③标识符的命名规则

答:仅仅可以由字母,数字,下划线,或者美元符号($)组成,且不能以数字开头;

C语言区分大写和小写,通常变量名和函数名都用小写字母表示;

尽管没有规定名称的长度,但还是别写太长,最好是见名知义,比方,int max一看就知道是用来存放最大值的!

还有,不能和以下的32个C语言的keyword重名哦!

以及C语言中系统先定义的标识符,如系统类库名,系统常量名

系统函数名,如(格式输出函数:printf());重名!

1.2 keyword(保留字)

①何为keyword:C语言中具有特殊含义的英文单词~通经常使用于构成语句,存储数据,定义数据类型等

②C语言的32个keyword參照图,不用记!等用到了再去了解!

1.3 分隔符

空白符:在程序中增加适当空白,能够使代码缩进,使得程序更加清晰易读.

普通分隔符:  分号(:)
: 语句结尾;                大括号({  }) :函数体,复合语句,以及数组的初始化等

圆括号(()):函数定义时,将參数括起来,或者改变运算的优先顺序;  eg: (a + 1) *2  和
a + (1 * 2)

方括号([]):定义数组类型和应用元素    eg: int a[10];     b = a[3];

点号(.):结构体仲引用成员      逗号:參数分隔
  eg:int a,b,c;

凝视符: // 单行凝视, /**/多行凝视   使用方法可见第一节的hello world程序!

2.数据类型

2.1 基本数据类型

ps:这里不给出数据类型的取值范围以及精度域宽等,由于在不同的计算机字长和系统环境下

占用的内存空间是不一样的,能够通过sizeof获得相应数据类型在该系统环境下所占的字节;

从而算出相应数据类型的取值范围!

①整型:用于准确地表示整数,依据表示范围的不同分为下面三种:

短整型(short) < 整型(int) < 长整型(long)

②实型(浮点型):用于标识实数(小数)依据范围和精度不同分为下面两种:

单精度浮点数(float)   < 双精度浮点数(double)

注意:float仅仅可以保证7位数字是有效的!!!

③字符型:用来描写叙述单个字符,char

除了上面三种以外,还能够使用long short signed unsigned来修饰不同的数据类型:(char仅仅能用后面两个)

有符号与无符号的差别是:最高位是否为符号位,即最高位是否用于表示数的整负;

我们能够加入unsigned来保证此数据为正数,同一时候相应的数据范围由0到原来的最大值 * 2

2.2 其它数据类型:

数组,指针,结构体,共用体,枚举,指针类型,文件类型,空类型(void)

这些后面会学到的,不讲。

3.常量与变量:

3.1  普通常量

整型常量:



实型常量:



字符常量

字符串常量和符号常量

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

3.2 变量

1. 什么是变量?

答:程序执行过程中,他的值能够改变的数据,代表着一个存储空间,须要用变量名来找到这个数据

就像:你去超市,放东西到储物柜的一格,他会给你一张纸条,你依据这个纸条才干够拿回自己的东西

储物柜的一格就是变量的内存空间,字条就是变量名,你拿和放就是改动变量名相应内存中的数据

2.变量的使用:

一个简单的 int a = 123;事实上暗地里运行了下面操作

①int a:在内存中开辟了四个字节的内存空间,而且为这个空间起了个名字,叫做a;

②后面的=123,这一步完毕的是变量的初始化,就是通过a这个变量名,往4个字节的内存中放入123这个数据

小提示;①一个好的建议是,当我们定义一个变量时,对其进行初始化,能够有效的避免空指针问题的出现

②你能够通过&a获得存放123这个数据的内存地址的值!

4.运算符与表达式

C语言强大的地方之中的一个就是他拥有丰富的运算符

4.1  算术运算符

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

4.2 关系运算符


4.3逻辑运算符

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

4.4 赋值运算符

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

4.5 条件表达式

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

4.6 逗号表达式:

4.7 长度測试运算符

sizeof:通经常使用来測试某个数据类型所占的内存空间大小

使用演示样例代码:

#include <stdio.h>
int main()
{
int a = 1;
float b = 1.1;
char c = 'c';
printf("%d,%d,%d\n",sizeof(a),sizeof(b),sizeof(c));
return 0;
}

该代码測试的是int,float,char类型在本机所占的字节数

4.8 运算符的优先级


口诀: 括号最大 > 。 > 算数运算符 >关系运算符>逻辑与或>赋值运算符

不要去记表,用到的时候再查,查多了就熟了!

C语言运算符优先级表:(具体)

http://blog.csdn.net/coder_pig/article/details/37650817

5. 数据类型的转换

小节:

①标识符的命名规则

②了解下C的32个keyword,分隔符的使用

③3个基本数据类型:整型,浮点型,字符型

④普通常量,字符串常量和符号常量

⑤变量的使用

⑥算术运算符,关系运算符,逻辑运算符,赋值运算符,条件运算符,逗号运算符,长度測试运算符的使用!

⑦了解下运算符的优先级

⑧C语言数据类型转换的强制转换(显式)和自己主动转换(隐式)

更新日志:

2014/7/25
 加入了:标识符的划分:keyword,提前定义标识符与自己定义标识符

该改动由网友:Robot__Man提出,很感谢!

C语言高速入门系列(二)的更多相关文章

  1. C语言高速入门系列(四)

    C语言高速入门系列(四) C语言数组 ---------转载请注明出处:coder-pig 贴心小提示:假设图看不清晰可右键另存为,应该就非常清晰了; 注意上面的代码都要自己过一遍哦! 本节引言: 经 ...

  2. C语言高速入门系列(一)

    C语言高速入门系列(一)  本系列引言: 本教程的宗旨是将C语言入门的内容进行关键知识点的提纯,将一些笼统的废话去除; 再进行压缩,然后将本章的关键知识点做成路线图的,能够更加方便地掌握学习的方向; ...

  3. C语言高速入门系列(五)

    C语言高速入门系列(五) C语言指针初涉                                           ------转载请注明出处:coder-pig 本节引言: 上一节我们对C ...

  4. C语言高速入门系列(八)

    C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...

  5. C语言高速入口系列(七)

    C语言高速入口系列(七) C语言指针进阶 本章引言: 在前面第5节中我们对C语言的指针进行了初步的学习理解;作为C语言的灵魂, C指针肯定没那么简单,在这一节中,我们将会对指针进行进一步的学习,比方二 ...

  6. C# 互操作性入门系列(二):使用平台调用调用Win32 函数

    好文章搬用工模式启动ing ..... { 文章中已经包含了原文链接 就不再次粘贴了 言明 改文章是一个系列,但只收录了2篇,原因是 够用了 } --------------------------- ...

  7. [转]C# 互操作性入门系列(二):使用平台调用调用Win32 函数

    传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...

  8. Maven入门系列(二)--设置中央仓库的方法

    原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...

  9. mybatis入门系列二之输入与输出参数

    mybatis入门系列二之详解输入与输出参数   基础知识   mybatis规定mapp.xml中每一个SQL语句形式上只能有一个@parameterType和一个@resultType 1. 返回 ...

随机推荐

  1. [CC-CHEFINV]Chef and Swaps

    [CC-CHEFINV]Chef and Swaps 题目大意: 长度为\(n(n\le2\times10^5)\)的数列,\(q(q\le2\times10^5)\)次询问,每次问交换\(A_x\) ...

  2. Mac OS下不产生.DS_Store 隐藏文件和清理.DS_Store的方法

    一.清理.DS_Store的方法 1. 打开终端 (Macintosh HD > Applications > Utilities > Terminal)2. 输入命令: " ...

  3. 【洛谷】4304:[TJOI2013]攻击装置【最大点独立集】【二分图】2172: [国家集训队]部落战争【二分图/网络流】【最小路径覆盖】

    P4304 [TJOI2013]攻击装置 题目描述 给定一个01矩阵,其中你可以在0的位置放置攻击装置. 每一个攻击装置(x,y)都可以按照“日”字攻击其周围的8个位置(x-1,y-2),(x-2,y ...

  4. 【openjudge】 CDQZ challenge 4

    改了三天,提交17次,一定要纪念一下! 1004:Challenge 4 总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列 ...

  5. Openfiler能把标准x86/64架构的系统变成一个强大的NAS、SAN存储和IP存储网关

    http://www.linuxprob.com/vmware-openfiler.html

  6. 多线程调试必杀技 - GDB的non-stop模式

     作者:破砂锅  (转) 开源的GDB被广泛使用在Linux.OSX.Unix和各种嵌入式系统(例如手机),这次它又带给我们一个惊喜. 多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持a ...

  7. [转]关于适配iphone5,Invalid Launch Image的退信

    关于适配iphone5,Invalid Launch Image的退信 本人xcode 4.3,所开发客户端新版本准备提交,应用中做了关于iphone5的适配,然后打包提交.在提交审核的时候被拒,收到 ...

  8. 【微信小程序】微信小程序 文本过长,自动换行的问题

    小程序开发过程出现的问题: 文本过长,以致于在view中显示不全,没有自动换行的问题 解决方法: 在wxss样式文件中添加样式 .font-break { word-break:break-all; ...

  9. [翻译] LASIImageView - 显示进度指示并异步下载图片

      LASIImageView – download image with progress indicator 翻译原网址:http://lukagabric.com/lasiimageview-d ...

  10. iOS获取网络类型的四种方法

    Reachability类只能区分WIFI和WWAN类型,却无法区分2G网和3G网. 网上也有些方法,却都存在Bug. 经过网上查找资料和测试,基本上总结了以下几种方法: 1.使用导航栏的方式:(私有 ...