黑马程序员——C语言基础学习(一)---C语言中的基本概念总结

            

------  <a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a> 期待与您交流! -------


                    C语言中的基本概念总结


一.关键字

   1.关键字基本概念

                    关键字就是已被C语言本身使用,不能作其它用途使用的字。 例如关键字不能用作变量名、函数名等 .


     2.关键字的分类

       (1)数据类型关键字 

A.基本数据类型(5)

Void float double

B .类型修饰关键字(4)

Short long signed unsigned

C .复杂类型关键字(5

struct union enum typedef sizeof

D .存储级别关键字(6)

Auto static register extern const volatile 


(2)流程控制关键字 

A .跳转结构(4个)

return break goto

B .分支结构(5个)

if else case default

C .循环结构(3个)

For do while 


二.标识符

   1.概念

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

       

       2.命名规则:           

1、只能由字母、数字、下划线或者美元符号($)组成

2、不能以数字开头

3、不能与关键字重名

4、严格区分大小写 


3.命名规范

起一个有意义的名字

驼峰命名:第一个单字以小写字母开始,第二个单字的首字母大写

或每一个单字的首字母都采用大写字 


三.数据类型

   1.C语言数据类型 

             

   2.数据类型所占的字节数

              


四.常量

   1.概念:

             常量就表示一些固定的数据,也就是不能改变的数据 .

        

        2.常量分类


1)整型常量,也就是整常数。

2)实型常量。

3)字符型常量。

4)字符串常量,注意字符串常量和字符型常量是不一样的。 


3.定义常量的方法

             

                 例: const int a = 10;

              

五.变量

   1.概念

               所谓变量,是代表内存的某个空间,它的取值可以变的,是数据的基本单元。


      2.变量的定义格式

                       格式1 : 变量类型 变量名称 ; 

                                                例:  int  a;

                                      格式2 : 变量类型 变量名称, 变量名称 ; 

                                             例:  int  a, b;

      注:变量命名的规范:

                    1)严格的遵守标识符的命名原则

                    2)变量名要尽可能的望文知意、简洁

                    3)变量名要按照驼峰命名法(遵从命名规范) 

     3.变量初始化

               1)定义的同时进行初始化

               2)先定义,后初始化

               3)使用一个变量进行初始化

               4)还可以批量的进行初始化 

    注:变量的第一次赋值被成为称为初始化,以后再赋值相当于覆盖了上一次的值. 

    

    4.变量的使用

             1)进行赋值:赋值是要使用“=” ,把等号右侧的值放到等号左侧的变量中 

                      例:

                            int a;

                         int b = 10;
                         a = b; //b的值赋值给

                   注:(1)赋值的时候,= 号的左侧必须是变量 (10=b,错)

                      (2)规范:习惯将 = 的两侧 各加上一个 空格 

              2)变量的操作: 运算、判断.... 

     

    

   5.变量的作用域

               1)局部变量局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内,离开该 函数后再使用这种变量是非法的。

               注意:
                    (1)
主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中 也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。

                    (2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。

                    (3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不 干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名.


               2)全局变量全局变量也称为外部变量,它是在函数外部定义的变量。

                注意:

                    (1)对于局部变量的定义和说明,可以不加区分。而对于外部变量则不然,外部变量的定义和外部变量的说明并不是一回事。外部变量定义必须在所有的函数之外,且只能定义一次。 其一般形式为: [extern] 类型说明符 变量名,变量名...其中方括号内的extern可以省去不写。

                    (2)而外部变量说明出现在要使用该外部变量的各个函数内,在整个程序内,可能出现多次,外 部变量说明的一般形式为: extern 类型说明符 变量名,变量名,...;外部变量在定义时就已 分配了内存单元,外部变量定义可作初始赋值,外部变量说明不能再赋初始值,只是表明在函数 内要使用某外部变量。

                    (3)外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而使得函数的独立性降低。从模块化程序设计的观点来看这是不利的,因此在不必要时尽量不要使用全局变量。 

                   (4)在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用。 


六.printf函数

   1printf函数介绍

                               printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。 

                             printf函数的调用格式为:

                                                                      printf("格式控制字符串",输出项列表); 

            注:

                1)格式字符串

                          是由格式字符(包括:转换说明符、标志、域宽、精度)和普通字符组成,转换说明符和百分号(%)一起使用,用来说明输出数据的数据类型、标志、长度和精度.

                2)输出项列表

                          可以是常量、变量和表达式,也可以没有输出项,这些输出项必须与格式控制字符串在类型和数量上完全对应,否则,结果将不可预测。当有多个输出项时,各个输出项之间用逗号‘,’分隔 .

               

   2.格式字符的使用说明

printf的格式控制的完整格式:

                   % - 0 m.n l或h 格式字符
 

下面对组成格式说明的各项加以说明:

1%:表示格式说明的起始符号,不可缺少。

2-:有-表示左对齐输出(右侧补空格),如省略表示右对齐输出(左侧补空格)。

30:有0表示指定空位填0,如省略表示指定空位不填。

4m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。

5lh:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。


格式字符:格式字符用以指定输出项的数据类型和输出格式。

1d格式:用来输出十进制整数。有以下几种用法:%ld:输出长整型数据。

2o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。

3x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。

4u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。

5c格式:输出一个字符。

6s格式:用来输出一个串。有几种用法
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注意:如果n未指定,默认为0。%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出,注意:如果n未指定,默认为0。
如果是sprintf(desc, "%m.ns", sour); 如果desc空间够的话,会在%m.ns 串 的结尾自动补null字符,不同于strncpy。

1)%f:不指定宽度,整数部分全部输出并输出6位小数。 

2)%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 

3)%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。 

7e格式:以指数形式输出实数。可用以下形式:%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

8g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

9p格式:输出变量在内存中的地址(指针) 


  3.printf函数使用注意事项 

   1)域宽问题

%d:按整型数据的实际长度输出。关于整数数据打印的时候域宽的问题。

%md-->m域宽,打印出来以后,在控制台上,显示m

如果我们要打印的数的位数如果超过我们设定m则原样输出

如果我们要打印的数的位数如果小于我们设定的位数,则补空白

如果m为正数,则左对齐(左侧补空白)

如果m为负数,则右对齐(右侧补空白) 

%0md表示,位数不足部分补“0” 


 2)关于转义字符


\n换行,相当于敲一下回车。
\t跳到下一个tab位置,相当于按一下键盘上的tab键。\b退格,相当于按一下backspace。
\r使光标回到本行开头。
\f换页,光标移到到下页开头。
\\输出\字符,也就是在屏幕上显示一个\字符。

\'输出'字符,也就是在屏幕上显示一个'字符。

\"输出"字符,也就是在屏幕上显示一个"字符。 



七.scanf函数 

    1.scanf函数的介绍

      scanf函数原型包含在标准输入输出头文件“stdio.h”中,用于接受键盘输入的内容。


                   格式: scanf("格式控制字符串",输入项地址列表); 


    格式控制字符串:

       规定数据输入的格式,由格式控制符和普通字符组成,格式控制符和百分号(%)一起使用,用来说明输入数据的数据类型(格式字符).

    输入项地址列表:

        需要接收数据的变量地址,这些输入项与格式控制字符串在类型和数量上要对应,当有多个输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。

    另外:

        在C语言中,一个变量的地址可以通过地址运算符&得到。例如:定义int a,b;则a,b的地址为&a,&b 


  2.scanf的使用注意事项

1)如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的

2)如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略

3)非法的格式输入,得不到想要的结果 

4)混合整形和字符型数据接收 当整形的数和字符混合输入时,要避免“空格”添麻烦.为防止混合输入 空格 造成的错误,可以通过添加普通的分隔符解决 


  3.scanf中的修饰符

           scanf函数的修饰符有:数据读入宽度(域宽)、*和长度.


               

1)关于域宽:可以用一个十进制数指定输入数据的数据宽度,系统自动按域宽截取输入数据.

2)关于“ * ”:表示按指定格式读入数据但不赋予相应的变量,作用是跳过相应的读入数据 .

3)关于使用"\n"的问题:scanf中可以使用"\n",但是输入的时候需要原样输入"\n" 

八.运算符

    1.运算符基本概念 

            运算符是运算符是告诉编译器程序执行特定算数或逻辑操作的符号. 


   2、分类

按照功能划分:

算术运算符、 关系运算符与逻辑运算符、按位运算符。


运算符根据参与运算的操作数的个数分为:

单目运算:只有一个操作数 如 : i++ ! sizeof

双目运算:有两个操作数 如 : a+b

三目预算:C语言中唯一的一个,也称为问号表达式 a>b ? 1 : 0 


   3.运算符图表

         

   4.运算符的优先级

         C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的 结合性所规定的结合方向处理。 

   5.结合性:

         C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。 


九.表达式 

        1.概念:

                      将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的、有意义的式子称为表达式。


      2.分类:

                     算术表达式

                     逻辑表达式

                     字符串表达式


     3.特点:

                    表达式是一个有意义的式子,所以一定有返回值.

 


         

       



 








 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值