C语言 概念整理 第一章 我梦老师倾情奉献

来源:互联网 发布:知乎现在有多少用户 编辑:程序博客网 时间:2024/06/04 00:42

一、



1.  C语言打印图形 最简单的printf 


#include <stdio.h>


int main() {

    

    printf(“hello world");


    return 0;


 2.数据类型!



为什么需要数据类型?

    方便我们存储数据,因为可以按照类型来确定内存占用多少空间

 

 

 整数(通俗的说就是需要数据是整数的时候用下面这三个  不过编程都只用int!!!!!):

    short(最小)  int(中等) long(最大)

 

 实型:(小数)

    float(小一点)  double(大一点)

 

 字符型:(保存单个字母)

    char

 

    'a'  '%'

     在程序里面,要保存单个字母应该用单引号包起来

 

也就说  编程的时候 需要数据是整数就用int 是小数就用 float(小一点)  double(大一点)

是字母就用char。

 


3. 写代码要注意的地方:

    1.不要忘记导入(其实就是开头打的这一行)头文件  #include <stdio.h>

 

    2.main函数只能有一个,而且必须要有

 

    3.语句后面千万要记得加分号,必须是英文(;)什么叫语句?简单来说就是写在main函数里面的代码就叫语句

    4.main函数后面的大括号一定要成对出现,而且是英文的大括号

 

    5.return 0可以省略的。

 

    6.return 0一定要放在最后,否则,在return 0后面的代码不会被执行

 

 

 \n是换行的






4.

 常量:就是一直不会改变的量

 

 

 程序里面怎么表示常量呢?

 

    1.)字面量表示法

        直接写值(数据)

 

        1;  2;   10;   10.3;   'a';

 

        int short long float double

 

    疑问来了:

        凭什么1要算做int而不算做long呢?

 

        10.3凭什么要算作double不算做float?

 

    就想表示一个long类型的常量和一个float类型的常量,怎么办呢??

 

        10l; //加一个l 这样就代表了long类型的常量

 

        10.3f;//加一个f  代表float类型的常量

 

        提问:可以描述为short类型的吗?

 

            不可以的!

 

    如果要写字符型的常量

 

        要想表示字符型常量,必须加''括起来,而且是英文的单引号

 

            'a','b','c','\n'是一个字符,换行字符

            'ab';

 

        字符只能表示单个字符

 

 

    2.)名字表示法:只读变量

 

        语法: 

            const 类型(数据类型) 名字  = 值;

 

        例:

         const int num1 = 10;

         

         const short num2 = 3;

         

         const char ch1 = 'a';



5.printf的另外一种用法:

 

    在你需要的位置,加一个%d,那么在后面,就可以填写一些值,它会自动的帮你填充过去

 

    意思就好比:%d是挖了一个坑,然后后面的值,把它填充

 

    注意:前面挖了几个坑,就一定要填几个坑

 

 

 格式化控制符

 

 %d  一定要填int型

 

 %ld 填入long类型

 

 %f  填入float类型

 

 %lf 填入double类型

 

 %c  填入的char类型

 

 

 总结:

    printf("要输出的内容"); //直接输出内容

 

 

    格式化输出内容:

        printf("格式化字符串",值列表);

 

    例:

        printf("字符1=%c\n",'a');

 

    注意:格式化字符串后面要接一个英文的逗号"," 值与值之间用,隔开


6.变量:就是可以改变的量

 

    语法:

        类型 变量名 = 值;

 

    例:

        int salary = 2500;

 

        char ch = 'a';

 

    第二种写法:

        类型 变量名;

 

        变量名 = 值;


7.变量的命名规范:

        1.起名要有意义

        2.只能以下划线、字母、美元符号($)开头,然后后面可以接任意的下划线和字母和美元符号还有数字(注意:mac环境下,是可以使用中文的,但是不推荐使用)

        3.不能以关键字作为名字

        4.使用驼峰命名法:

                        第一个单词的首字母小写,后面的每个单词的首字母都大写





8. scanf函数的用法!!!


printf是输出

 

 那么能不能输入呢?

 

 就要用scanf

 

 用来接收用户输入的数据

 

    语法:

        scanf("格式化控制符",地址列表);

 

    要用取地址符:& (shift + 7)

 

 

 int num = 10;

 

 

 int num;//也有值,只不过是垃圾值

 

 注意:一定要加取地址符&

 

 

 也可以接收小数:

        %f:float类型

scanf函数:

 语法:scanf("格式化控制符",地址列表);

 

    &:取地址符

 

 

 格式化控制符前面要求输入什么类型的数据,那么地址列表那,就必须只能放相应类型变量地址

 

 

 scanf函数的特点:

        它是一个阻塞式的函数

 

 

 使用scanf函数同时接收多个输入

        其实就是在格式化控制符里面,多写几个格式化控制符,地址列表要按照顺序给

 

        输入的时候可以输入N次(N等于格式化控制符的个数),或者以空格隔开

 

 如果不想用空格在一行内输入,那么你在scanf函数里面可以指定符号

    输入的时候必须按照这个符号来输入,否则会异常(后面的变量接不到值)

 

 

 scanf里面最好不要接其他的文字。如果实在忍不住手贱要加东西,那么也一定要按照你在scanf里面写的格式来输入

 

     用scanf的时候,最好不要先接收一个任意的数值类型(整型、实型),再接收一个char类型.

        如果非要在后面接一个char类型的话,那么在scanf的格式化控制符之前要加一个空格

 

 

 

 如果scanf要接收的是数字,那么不管你输入多少个空格,或者回车,都不会停止让你输入,直到你输入一个数字才会停止

 如果接收的是int类型,你输入一个小数,那么会截取小数的整数部分

 

 如果接收的是数字,你输入的是字符,那么会结束输入,但是不会把值给你存起来

 

 

 

 scanf的运行原理:

        scanf接收用户的输入,但是用户的输入并不是直接给了变量,而是存在一个叫缓冲区的地方

 

        1.接收输入的时候,会先去缓冲区里面找,看缓冲区里面有没有合适的值,如果有,那么就直接不让你输入,直接把缓冲区里面的值给到你的变量,如果没有呢?会让用户继续输入,直到合适,才停止

 


 



9.算术运算符:

    +:加,功能:就是把左右两个操作数的值相加得到和

    -:减,功能:就是把左右两个操作数的值相减得到差

    *:乘,功能:就是把左右两个操作数的值相乘得到积

    /:除,功能:就是把左右两个操作数的值相除得到商

    %:取余,功能:就是把左右两个操作数的值进行除法运算,得到余数。除不尽的数

 

 1+2;

 3+10;

 10/2;

 3*2;

 10%3;

 

 像这样的式子就叫算数表达式

 

 算术表达式:就是用算数运算符组成的表达式就叫算数表达式

 

 我们用表达式都是为了得到一个结果。

 

 所以如果直接写算数表达式,毫无意义

 

 

 如果要让它有意义起来怎么办?

    1.直接在printf里面进行输出

    2.保存到变量里面

 

 常量或者变量都可以参与运算。

 

 

 需要注意的地方:

    1.加减乘跟数学一样

    2.除不一样。当/两边的数都是整数的时候,那么得到结果也一定是整数

               当/两边的数有一个是浮点数,那么得到的结果也一定是浮点数。运算结果是double还是float根据浮点数类型来确定

    

    3.取余:就是得到余数

            取余结果的正负性 只取决于左边的那个操作数,左边那个是正数,那么结果也一定是正数,左边那个是负数,那么结果也一定是负数。跟第二个数的符号木有半毛钱关系

 

 

 

 一个算数运算式里面,谁先运算呢?

 

        跟数学一样:先算乘除再算加减,有括号的先算括号里面的

 

                  如果同级则从左往右依次运算

 

    程序里面符号有优先级之分:

 

 

 数学里面:0可以做除数吗?

            不可以!程序里面也不可以!

 

        1.如果0作为除数的表达式两边都是常量,那么运行不会报错,只不过得到的结果是垃圾值

        2.如果0作为除数,两边任何一方是变量,那么运行时会报错

        3.浮点数不能做取余操作




10  类型装换!!!


 在基本数据里面,所有的值都可以进行转换

    int  char  long  short  float  double

 

 可以把float或者double转换成int,那么会截取小数的整数部分

 

 像 int num = 10.3;这样的转换,就叫隐式转换,是由系统帮你完成的转换

 

 显示转换:

        那么就是程序员告诉编译器该转换成什么类型

 

 

 补充:在同一个作用域里面变量不能同名,同名会报错

 

 

 字符其实本质上就是正整数

 

 =:

    在数学中叫=号,在程序里面叫赋值号

 

 数学里面代表 左边和右边是相等的关系

 

 程序里面是代表把右边的值赋值给左边


 

 赋值表达式也有结果,结果就是 = 右边表达式的结果



11.自增自减


年龄每年都在增长一岁,那么用程序如何描述?

 

 ++:

    在原来的值的基础上+1

 

 

 --:

    在原来的值的基础上-1

 

 

 前缀++(--)和后缀++(--)的区别:

 

        前缀:先自增或自减再参与运算

        后缀:先用原来的值参与运算,再自增或自减

 

 

 无论是前缀还是后缀,其值最终都会自增或自减


12.逗号表达式


 逗号运算符:,

 

 逗号运算式:

         (表达式1,表达式2,表达式3,………………表达式n);

 

 作用:

     会从表达式1,一直执行到表达式n,表达式的结果以最后一个表达式的结果为最终结果

例:#include <stdio.h>


int main(int argc, const char * argv[]) {

    

    int num1 = 10;

    

    int num2 = 20;

    


    

    

    int sum = (num1++,num2--,++num1,++num2,num1+num2);

    printf("num1=%d num2=%d  sum=%d",num1,num2,sum);//12  20  32

    

   

    return 0;

}

0 0
原创粉丝点击