美文网首页
C语言知识点

C语言知识点

作者: 一直很安静_25ae | 来源:发表于2019-06-03 14:48 被阅读0次

什么是关键字

关键字就是C语言提供的有特殊含义的符号,也叫做“保留字”

C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义

auto double int struct break else long switch

case enum register typedef char extern return union

const float short unsigned continue for signed void

default goto sizeof volatile do if while static

关键字的特征

全部都是小写

在开发工具或者智能文本编辑工具中会显示特殊颜色。默认情况下,C语言中的所有关键字在Xcode中都会显示紫褐色

什么是标识符

标识符就是在程序中自定义的一些符号和名称。要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的

标识符的作用

标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来

其实,标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字

C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学到“变量”这个概念,变量的名称也是标识符

命名

命名规则(一定要遵守)

只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成

严格区分大小写,比如test和Test是2个不同的标识符

不能以数字开头

不可以使用关键字作为标识符

命名规范(最好遵守)

尽量起个有意义的名称,比如一个完整的英文单词,别人一看这个名称就能才能这个标识符的作用。如果不懂英文,你也可以用拼音,尽量不要起像abcde、sfsdfsdf等这类看起来没有意义的名称

如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都是大写):firstName、myFirstName,或者使用下划线_来连接:first_name、my_first_name

数据的分类

计算机中存储的数据可以分为两种:静态数据和动态数据。

静态数据

概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。

存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。

哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

动态数据(临时数据)

概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。

存储的时长:计算机关闭之后,这些临时数据就会被清除。

哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。

你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。




什么是常量

常量,表示一些固定的数据

常量的分类

1> 整型常量(int)

包括了所有的整数,比如6、27、109、256、-10、0、-289等

2> 浮点型常量(float\double)

浮点型常量分为double和float两种数据类型

double:双精度浮点型,其实就是小数。比如5.43、-2.3、0.0等(注意,0.0也算是个小数)

float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。

3> 字符常量(char)

将一个数字(0~9)、英文字母(a~z、A~Z)或者 其他符号(+、-、!、?等)用单引号括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'、'$'等。

注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'

4> 字符串常量

将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"哇哈哈"、"abcd"、"my_car4",其实printf("Hello World");语句中的"Hello World"就是字符串常量

什么是变量

当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。比如游戏积分。

定义变量

目的

任何变量在使用之前,必须先进行定义。

定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。

如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。

格式

变量类型  变量名;

比如int num;

变量名属于标识符

变量类型

不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间 

约束变量所存放的数据类型(方便运算)

变量的使用

赋值

往变量里面存点东西,就是赋值。赋值语句后带个分号;

i = 10;

注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量i

第一次赋值,可以称为“初始化”

初始化的两种形式

先定义,后初始化:int a;  a = 10;

定义的同时进行初始化:int a = 10;

修改

可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值

i = 10;

i = 20;

变量i最后的值是20

变量的内存分析

字节和地址

为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。

1>内存以“字节为单位”   Byte 

      1Byte = 8bit  1个字节占8个比特位   比特位就是2进制 10101010

2>不同类型占用的字节是不一样的,数据越大,所需的字节数就越多

变量的存储

所占用字节数跟类型有关,也跟编译器环境有关

变量实例

int b = 10;

int a = 20;

内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大

每个变量都有地址:第一个字节的地址就是变量的地址

查看内存地址:

int a;

printf("a的地址是:%p\n", &a);

注意

在变量未经初始化之前,不要尝试使用变量的值

int a;

printf("a的值是:%d\n", a);

上面的写法是不建议的


%d ,%i 都是占位符 只能输出整数

int a = 10;

printf("a的值是:%d\n", a);

%f用来输出小数.默认都是6位小数

float a = 10.6f;

printf("a的值是:%.2f\n", a);

%c用来输出char类型

char a = 'a';

printf("a的值是:%c\n", a);

%p用来输出地址 &是一个地址运算符,取得变量的地址

int a = 10;

printf("a的地址是:%.p\n", &a);

scanf函数

#include<stdio.h>

int main( ){

    // 定义一个变量,用来保存用户输入的整数

    int number;

    // scanf函数只接受变量的地址

    // scanf函数是一个阻塞式的函数,等待用户输入

    // 用户输入完毕后,就会将用户输入的值赋值给number变量

    // 函数调用完毕

    scanf("%d", &number);

    printf("用户输入的值是%d\n", number);

    return 0;

}

scanf注意事项

#include<stdio.h>

int    main(){

    /* 1.输入字符

    char myc;

   scanf("%c", &myc);

    printf("输入的字符是%c\n", myc);

     */

    /* 2.一次性输入多个数值,并且以某些符号隔开

    int num1, num2;

    scanf("%d#%d", &num1, &num2);

    printf("num1=%d, num2=%d\n", num1, num2);

    */

    /*

    3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符

    int num1, num2;

    scanf("%d %d", &num1, &num2);

    printf("num1=%d, num2=%d\n", num1, num2);

     */

    /*

    4.scanf中不能写\n

    int a;

    scanf("%d\n", &a); // 错误写法

    printf("a的值是%d\n", a);

     */

    return 0;

}

相关文章

网友评论

      本文标题:C语言知识点

      本文链接:https://www.haomeiwen.com/subject/shrcxctx.html