(一)、今天我们要学习的主要包括一下内容:
1、标示符概念及其命名原则
在C语言中,符号常量,变量,数组,函数等都需要一定的名称,我们把这种名称称之为标识符。
标识符划分:关健字、预定义标识符和用户标识符
命名规则:
(1)、只能由字母、数字、下划线或者美元符号($)组成
(2)、不能以数字开头
(3)、不能与关健字重名
(4)、严格区分大小写
命名规范:
(1)、起一个有意义的名字(比如用户名:userName)
(2)、驼峰命名(如果一个名称有多个单词组成,第一个单词首字母小写其他单词首字母大写,或者每个单词首字母都大写)
必须是字母、数字、下划线组成,且不能依数字开头,标识符名称不应该和关键字相同
2、C语言中得注释介绍及使用
(1)、//双斜杠注释,又称单行注释 可以注释一行 且被注释的代码不参与编译器编译,也就是说编译器遇到带注释的代码块
会直接跳过
(2)、/**/多行注释,比如:/*我是被注释的内容,程序执行的时候直接跳过此部分内容*/
3、数据及数据类型
什么是数据类型:
生活中我们时时刻刻都在跟数据打交道,比如我们的年龄,身高,体重,平时生活中处处见到的视频、文档、音乐等等这些都
可称之为数据,计算机为了存储这些不同的数据,就定义了不同的数据类型。
数据的计量单位:
1 B (Byte字节)=8 bit (位)
1 KB(KByte)=1024 B
1 MB=1014 KB
1 GB= 1024 MB
1 TB= 1014 GB
C语言中常用的数据类型如下图:
4、数据类型的内存占用及范围
数据类型占用字节说明如下图:
在这里我们需要知道的是再Mac 电脑中从10.7以后 都是64位,也就是说我们需要记住Mac 10.7版本以后的电脑中 char 占用
字节是1个字节,int、float类型占用4个字节、double类型占用8个字节、short类型占用2个字节、long、long long、以及void
都是占用8个字节
不同类型表示的范围
5、常量的概述及分类及表示方法
C语言有丰富的数据类型,在开发中,一般用常量或者变量来表示这些数据类型,"量"表示数据。常量,则表示一些固定的
数据,也就是不能改变的数据。比如人的出生日期、身份证号等。
常量分类:
(1)、整型常量,也就是整常数。
二进制(比如:0b0001)
八进制(比如:0123)
十进制(比如:100)
十六进制 (比如:0x123)
(2)、实型常量
单精度 (比如:2.3f)
双精度(比如:‘a‘)
(3)、字符型常量
普通字符
转义字符
(4)、字符串常量,注意字符串常量和字符型常量是不一样的
(5)、字符串常量
用双引号括起来,里面可以是字符、数字、符号(比如:"abd","a","***")
(6)、特殊的字符常量(转义字符)如下图:
6、变量的概念及定义
(1)、定义(声明)
格式1:变量类型 变量名称;
比如:int a; float b; char ch;
格式2:变量类型 变量名称,变量名称;
比如:int a, b;
(2)、变量命名的规范
严格遵守标识符的命名原则
变量名要尽可能的望文知意、简洁
变量名要按照驼峰命名法(遵守命名规范)
7、变量的初始化和引用
(1)、变量的初始化
int a=10; int a=10,b=20,c=30;
int a=10; int &b; a=b;
8、变量的作用域
(1)、C语言中所有变量都有自己的作用域,申明变量的类型不用,其作用域也不同,C语言中的变量按照作用域可以分为两种,
一种是局部变量,一种是全局变量。
根据C语言的说法,局部变量:定义在方法内部的变量叫局部变量;全局变量:定义在方法外部的变量叫全局变量。局部
变量和全局变量的主要区别在于二者的生存周期不同。
全局变量的生存周期:静态分配内存,程序运行期间常驻内存,直到程序运行结束。
局部变量的生存周期:动态分配内存,位于线程堆栈中。
另外全局变量和局部变量的作用域不同,举例来说,类中的变量作用域在当前类中,类方法中的变量作用域在当前方法中
全局变量的使用场景:多个地方需要使用,大家共享。
局部变量的使用场景:只在当前这个地方使用。
为了更清楚的区别局部变量和全局变量之间的关系,我们看段代码,如下图:
9、变量为什么要区分类型
(1)、为了更合合理使用内存,不同的数据类型需要存储的空间也是不一样的
(2)、数据的存储格式不一样,int 4字节,float 4字节,double 8字节
(3)、不同数据类型他们的运算方式可能不一样的
10、printf函数介绍及常见用法
printf函数是一个标准的库函数,表示打印内容到控制台,和scanf函数是一对,scanf是接收用户输入的内容到程序中
printf函数的调用格式为:
printf("格式控制字符串",输出项列表);比如 printf("Hello world\n");
%md问题(设置域宽或者位数) m是一个数字,可以为正也可以为负数
printf("%md",10) ; 比如m=5, 打印出来的值为: 10(其中10前还有三个空格),如果为-5 则在10后面会补三个空格。
printf("%0md",10); 比如m=5, 则打印出来就为00010;
11、%f输出精度问题
对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。
对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。
12、scanf函数介绍及使用
scanf函数也是一个标准的函数库
scanf("格式控制字符串",输入项列表); 比如 scanf("%d,%d",5,10);
13、sacnf使用注意事项
scanf函数原型包含在标准输入输出头文件"stdio.h"中,用于接收键盘输入的内容
格式:scanf("格式控制字符串",输入项地址列表);
int a=0; scanf("%d",&a); 定义一个int类型的变量a, 用来接收用户输入的值。
14、scanf函数原理
当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中,然后scanf函数会根据格式控制的字符要求,从输入
缓冲区依次取它想要的内容如果从缓冲区中取得的内容和我的格式要求一致,则把值存放到变量中,如果格式不一致,则
不修改变量的值(比如:int a=10,但是我们输入的时候输入的是a,那么最后打印出来的值就还会是10),如果scanf缓冲区
还有内容,则scanf不会提示我们再次输入。