小猪的C语言快速入门系列(二)

标签: C语言


本节引言

在上一节中,对于C语言有了一个初步的了解,学会了如何使用IDE来进行
代码编写,编译和运行。而这一节,我们会对C语言的基本语法进行学习,
C语言是一门编程语言,可以和英语进行类比,英语句子 = 单词 + 语法,
同样C语言的代码语句,也有着自己的一套规则。


本节学习路线图


1.基本字符集


1.1 标识符

何为标识符

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

标识符划分

关键字,预定义标识符和用户标识符!

标识符的命名规则

只能够由字母数字下划线,或者美元符号($)组成,且不能以数字开头;
C语言区分大小写,通常变量名和函数名都用小写字母表示;
虽然没有规定名称的长度,但还是别写太长,最好是见名知义,比如int max一看就知道
是用来存放最大值的!还有,不能和下面的32个C语言的关键字重名哦!以及C语言
中系统先定义的标识符,如系统类库系统常量名系统函数名
如(格式输出函数:printf());重名!


1.2 关键字「保留字」

何为关键字

C语言中具有特殊含义的英文单词,通常用于构成语句,存储数据,定义数据类型等

C语言里的32个关键字参照图,不用记,用到的时候再去了解!


1.3 分隔符

空白符:在程序中加入适当的空白缩进代码,会使得程序更加清晰易读。

普通分隔符

  • 分号; 」:语句结尾
  • 大括号{ } 」:函数体,复合语句以及数组的初始化等;
  • 圆括号() 」:函数定义时用来括住参数,或者用来修改运算顺序,
    比如:(a + 1) 2 和 a + (1 2)
  • 方括号[] 」定义数组类型和应用元素,比如: int a10; b = a3;
  • 点号. 」:结构体仲引用成员
  • 逗号, :参数分隔,比如:int a,b,c;

注释符: // 单行注释, /**/多行注释


2.数据类型


2.1 基本数据类型

注意:这里没有给出数据类型的取值范围与精度域宽等,以为在不同的计算机
字长与系统环境下占用的内存空间是不一样的,可以通过sizeof获得对应数据类
型在该系统环境下所占的字节,从而算出对应数据类型的取值范围!

  • 整型:用于准确地表示整数,根据表示范围的不同分为以下三种:
    短整型(short) < 整型(int) < 长整型(long)

  • 实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种:
    单精度浮点数(float) < 双精度浮点数(double)
    注意:float只能够保证7位数字是有效的!!!

  • 字符型 : 用来描述单个字符,char
    除了上面三种以外,还可以使用long short signed unsigned 来修饰不同的数据类型:
    (char只能用后面两个),有符号与无符号的区别是:最高位是否为符号位,
    即最高位是否用于表示数的整负;我们可以添加unsigned来保证此数据为正数,
    同时对应的数据范围由0到原来的最大值 * 2


2.2 其他数据类型

数组,指针,结构体,共用体,枚举指针类型,文件类型,空类型(void),后面会学,这里不讲。


3.常量与变量


3.1 常量

整型常量

除上述三种外,还可以在常量后面添加后缀:L或者U,比如:
108L表示长整型的常量,与108虽然数值相等,但分配的内存空间大小是不一样的;
0xA3U:表示无符号位的十六进制数0xA3

实型常量

Tips:所谓的规范化的指数形式就是:小数点左边有一位非零的数字(只有一位)
比如:2.4E3 是对的,而0.1E5 则是错的。

字符常量

附上C里的转义字符:

转义字符 作用 转义字符 作用 转义字符 作用 转义字符 作用
\n 回车换行 \t 水平制表 \v 垂直制表 \b 退格
\r 回车不换行 \f 走纸换页 \0 控制符 \\ 右斜线
\' 单引号 \" 双引号 \a 响铃

字符串常量

  • 用一对双引号括起来的或者多个字符构成的字符串序列,如:
    “”,”apple”,”+-*/@#$%”
  • 系统会在存储字符串的时候自动加上‘\0’,字符串结束的标志
    如:”a”这个字符串占两个字节,因为存储的时候其实是:”a\0”

符号常量

  • 又叫宏常量,是一个预处理命令:#define 常量名 常量值
  • 定义后,程序所有出现这个标识的地方都可以用这个常量来代替:
    如: #define PI 3.1415926 s = r * r * PI,这里的PI就是3.1415926

3.2 变量

什么是变量?

答:程序运行过程中,他的值可以改变的数据,代表着一个存储空间,需要用变量名
来找到这个数据就像:你去超市,放东西到储物柜的一格,他会给你一张纸条,你根据
这个纸条才可以拿回自己的东西储物柜的一格就是变量的内存空间,字条就是变量名,
你拿和放就是修改变量名对应内存中的数据。

变量的使用:

一个简单的 int a = 123;其实暗地里执行了以下操作

  • int a:在内存中开辟了四个字节的内存空间,并且为这个空间起了个名字,叫做a;
  • 后面的=123,这一步完成的是变量的初始化,就是通过a这个变量名,往4个字节的
    内存中放入123这个数据

Tips

  • 一个好的建议是,当我们定义一个变量时,对其进行初始化,可以有效的
    避免空指针问题的出现;
  • 你可以通过&a获得存放123这个数据的内存地址的值!

4.运算符与表达式


4.1 算术运算符

经典例子:倒序输出五位数

#include <stdio.h>
int main()
{int a,i;printf("请输入需要倒序输出的五位数\n");scanf("%d",&a);printf("输出倒序后的五位数:\n");for(i = 0;i<5;i++){printf("%d",a%10);a /= 10;}printf("\n");return 0;
}

4.2 关系运算符

经典例子

#include <stdio.h>
int main()
{int a = 1,b = 2,c = 3;int x,y;x = a + b == c;     //结果为1为真y = 11 >b != a;     //11 >b 结果为真,即为1, 1 != 1,假printf("x = %d,y = %d\n",x,y);return 0;
}

4.3 逻辑运算符

经典例子:判断某一年是否为闰年

#include <stdio.h>
int main()
{int year;printf("请输入需要判断的年份:\n");scanf("%d",&year);if(!(year%4)&&year%100 || !(year % 400)){printf("%d年是闰年\n",year);}else printf("%d年不是闰年!\n,year");return 0;
}

4.4 赋值运算符

经典例子:赋值运算符的嵌套,一般题目会问某个变量在某时刻的值

#include <stdio.h>
int main()
{int a,b,c;//普通赋值:a = 2,b= 6,c = 26;a *= b = c = 3;     //a = 6,b=3,c=3;printf("a = %d,b = %d,c = %d\n",a,b,c);a += b +=c;    //a = 12,b=6,c =3printf("a = %d,b = %d,c = %d\n",a,b,c);a = b == c + 5;  //a = 0,b = 6,c = 3printf("a = %d,b = %d,c = %d\n",a,b,c);return 0;
}

4.5 条件表达式

经典例子:用条件表达式实现求三个数的最大值

#include <stdio.h>
int main()
{int a,b,c;int max;printf("请输入三个数:\n");scanf("%d%d%d",&a,&b,&c);a > b ? (max = a):(max = b);max < c? (max = c):max;printf("输出最大值:%d\n",max);return 0;
}

4.6 逗号表达式

经典例子:逗号表达式的值

#include <stdio.h>
int main()
{//int a = b = c = 5;是不合法的啊!int a,b,c;a = b = c = 1;c = (a = 10,b = 10,2 * a + 5,a + a * b + c);
    //输出结果:10,10,111;printf("a = %d,b = %d,c = %d\n",a,b,c);return 0;
}

4.7 长度测试运算符

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

经典例子:测试的是int,float,char类型在本机所占的字节数

#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;
}  

4.8 运算符的优先级

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

附上C语言运算符优先级表(详细):
http://blog.csdn.net/coder_pig/article/details/37650817

另外,记得口诀就好,不要去记表,用到的时候再查,查多久熟了。


5.数据类型的转换


本文链接:小猪的C语言快速入门系列(二)
作者:Coder-Pig
出处:http://blog.csdn.net/coder_pig
本文基于知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,
演绎或用于商业目的,但是必须保留本文的署名及链接。

小猪的C语言快速入门系列(二)相关推荐

  1. 小猪的C语言快速入门系列(五)

    小猪的C语言快速入门系列(五) 标签: C语言 本节引言: 上一节我们C语言 复合数据类型 中的 数组 进行了解读,本节我们会继续来学习 复合数据类型中的 指针,指针可是C语言的灵魂:利用指针可以表示 ...

  2. 小猪的C语言快速入门系列(三)

    小猪的C语言快速入门系列(三) 标签: C语言 本节引言: 在上一节中,对C语言的基本语法进行了学习,类比成学英语的话,我们现在 只是会单词而已,组成一个个句子还需要学习一些语法,本节学习的就是两对 ...

  3. 小猪的C语言快速入门系列(一)

    小猪的C语言快速入门系列(一) 标签: C语言 本系列教程引言: C语言 作为大学编程或者计算机专业的一门必修课,把很多初学编程的小伙伴 都难住了,感觉无从下手,本套教程就是为此而诞生的.教程会把 C ...

  4. C语言速看,C语言高速入门系列(二)

    C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...

  5. c语言类似于 n的标识符,C语言快速入门教程(二)

    C语言快速入门教程(二) C语言的基本语法 本节学习路线图: 引言: C语言,顾名思义就是一门语言,可以类比一下英语; 你要说出一个英语的句子需要: 单词 + 语法! 将单词按照一定的语法拼凑起来就成 ...

  6. 2021-08-26 转载 Scala快速入门系列博客文章

    作者:Huidoo_Yang 出处:http://www.cnblogs.com/yangp/ 本文版权归作者Huidoo_Yang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面 ...

  7. sumo添加车辆_SUMO仿真快速入门系列三:产生车辆移动模型

    在<SUMO快速入门系列二>中,我们已经产生了一个较为简单的街道地图模型. 本节中我们产生车辆移动模型并与道路模型结合,使得车辆在真实道路中跑起来.在SUMO中,车辆移动模型称为Deman ...

  8. SUMO仿真快速入门系列三:产生车辆移动模型

    在<SUMO快速入门系列二>中,我们已经产生了一个较为简单的街道地图模型. 本节中我们产生车辆移动模型并与道路模型结合,使得车辆在真实道路中跑起来.在SUMO中,车辆移动模型称为Deman ...

  9. python r转义_Python快速入门系列之二:还学不会我直播跪搓衣板

    Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业.它易学好懂,拥有着丰富的库,功能齐全.人生苦短,就用Python. 这个快速入门系列分为六篇,包含了Python大部分基础知识,每篇 ...

最新文章

  1. 实现checkbox的全选和取消
  2. 查看mysql日志文件大小和数据库大小
  3. 线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
  4. 第二讲 ODE欧拉数值方法
  5. Atlas 和 ASP.Net AJAX
  6. ZOJ3865:Superbot(BFS) The 15th Zhejiang University Programming Contest
  7. 单片机位寻址举例_单片机学习:51单片机寻址方式详解
  8. 趣学java,编程趣学习app
  9. 20200802:力扣200周周赛题解
  10. OFD在线预览方案评测
  11. Java 常量池详解(一)字符串常量池
  12. 学习笔记(02):10小时掌握区块链开发教程-2小时构建以太坊智能合约-1
  13. Aria2Android 免root,安卓不需root用aria2搭建NAS方法
  14. 保留两位小数除法算式_小数除法计算题
  15. python winrar密码_python+winrar 指令压缩文件 | 学步园
  16. Android的holder机制
  17. 小程序版道歉文案自动生成 道歉神器源码分享
  18. cm-14.1 Android系统启动过程分析(8)-应用程序进程启动过程
  19. 初级会计机考模拟系统计算机怎么用,2020初级会计《机考操作与应试技巧》之机考操作篇...
  20. CNdeepdive 安装报错:deepdive Failed connect to raw.githubusercontent.com:443; Connection refused

热门文章

  1. GLES3.0中文API-glGetActiveUniform详解
  2. Shrio框架实现自定义密码校验规则
  3. 硬件I2C与模拟I2C
  4. poj3232 - Accelerator(加速器)
  5. acrobat pro dc 2019.010.20064 for mac激活版
  6. Ubuntu18.04 安装 samba 服务器
  7. 小例子,方法每隔100毫秒执行一次
  8. 数采仪下工业污染源(废气)工况用电监测
  9. 玩转乐心Mambo HR手环-股票行情提醒
  10. 鲸鱼优化算法WOA求解旅行商TSP优化问题(2022.6.2)