您的位置:首页 > 编程语言 > C语言/C++

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

2015-10-24 20:31 288 查看
一、

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: