美文网首页
C语言 基础知识(一)

C语言 基础知识(一)

作者: 小白虫虫 | 来源:发表于2017-09-25 16:01 被阅读0次

    输出函数 各种占位符


    %d ->int

    %ld ->long int

    %c ->char

    %f ->float,默认保存小数点后6位。(在%.数字f,百分号与占位符中间位置修改默认保留位数)

    %u ->无符号整形数(范围:0-255)

    %hu ->无符号短整形(范围:0-127)

    %hd ->短整形

    %lf ->double 默认保存小数点后6位。

    %x ->十六进制输出

    %o ->八进制输出

    %s -> 字符串

    %g ->跟%一样,差别是不保留小数后无用的0

    %lg ->跟%lf一样,差别是不保留小数后无用的0

    补充:


    \r 回车字符,会把光标重新挪到本行第一位,覆盖本行已经打印的内容。

    \r必须与\n一起使用,可避免出问题。

    C中没有String类型,但可以用Char char[] 表示,结束标志是\0

    输入函数


    格式:scanf("占位符",“内存地址”);

    不管是输入,还是输出函数,占位符都在前面的引号里,内容都在后面的引号里!!!

    指针


    格式:某种类型*,例如:int* p,定义一个int类型的一级指针变量。

    理解:指针就是内存地址,即内存地址编号。

    操作:赋值 -> int i=10; p=&i, 指针p指向i的地址;

    取值 -> int j; j=*p,把指针p指向的地址的内容取出来;

    **本值和地址没关系,各司其职而已。值:负责数字,地址:负责位置。 

    指针和指针变量的区别:


    指针里存的是100,指针:地址--具体;

    指针里存的是地址,指针:指针变量--可变;

    指针的重要性:


    1、可直接访问硬件(opengl显卡绘图);

    2、可快速传递数据(指针表示地址);

    3、可返回一个以上的值(返回一个数组或者结构体的指针);

    4、可表示复杂的数据结构(结构体);

    5、可方便处理字符串;

    6、可有助于理解面向对象;

    *号的三种位置:


    3*5  数学运算符;

    int* p 定义指针变量;

    *p 取内存地址为p的里面的数字;

    对于交换值的错误认识:


    面向过程,只有拿到数值的地址,才能真正拿到该数值;

    只操作了地址,仅仅说明地址上下交换了,但是内容还是在地址里面,也跟着交换了。

    正确做法:拿到地址后,操作数值交换,就能实现真正交换。

    返回多个值:


    void close(int* a,int* b){   }

    通过被调用的函数,来修改主调函数中普通变量的值。

    1、实参必须是普通变量的地址;

    2、形参必须是指针变量;

    3、被调用的函数中必须通过修改 *形参名的方式修改主调函数相关变量的值;

    多级指针


    定义:

    例如:int i=10; 

    int* p1=&i; 一级指针,存放的i的内存地址;

     int**p2=&p1;二级指针,存放的p1的内存地址;

     int ***p3=&p2;三级指针,存放的是p2的地址;

    。。。反正存的就是地址!!!

    取值:

    int j=***p3; 或者 int j=**p2; 或者 int j=*p1;

    与存的顺序相反;

    相关文章

      网友评论

          本文标题:C语言 基础知识(一)

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