zoukankan      html  css  js  c++  java
  • c语言函数与数组与指针

    常用的数据输入与输出函数

    字符:表示数据和信息的字母、数字或其他符号。在电子计算机中,每一个字符与一个二进制编码相对应。
    字符数据输出:使用putchar函数,作用是向显示器输出一个字符。可以是字符型变量,整型变量也可以是常量,也可以是转移字符。
    要使用putchar函数,首先要包含头文件stdio.h
    字符数据输入:使用getchar函数,作用是从终端输入一个字符。没有参数
    要使用getchar函数,首先要包含头文件stdio.h
    字符串输出函数:使用puts函数,作用是输出字符串到屏幕上。
    格式:int puts(char *str)
    要使用puts函数,首先要包含头文件stdio.h。
    编译器会在字符串常量末尾添加"",这也说明了puts函数会在输出字符串常量时最后进行换行操作。
    字符串输入函数:使用getsr函数,作用是从终端输入一个字符串
    格式:char *gets(char *str)
    getch():
    所在头文件:conio.h
    函数用途:从控制台读取一个字符,但不显示在屏幕上
    函数原型:int getch(void)
    数组
    1.数组初始化时未初始化的数组值为0
    字符数组的输入和输出:
    (1)使用格式符“%c"进行逐个输入与输出
    (2)使用格式符“%s"进行整个输入与输出
    字符串处理函数
    1.字符串复制:strcpy(目的字符串数组名,源字符串数组名)
    注意:不能用赋值语句将一个字符常量或字符数组直接赋给一个字符数组
    2.字符串连接:strcat(目的字符串数组名,源字符串数组名)
    3.字符串的比较:strcmp(字符数组1,字符数组2)
    字符数组1==字符数组2 返回值为0
    字符数组1>字符数组2 返回值为整数
    字符数组1<字符数组2 返回值为负数
    4.字符串大小转换:转换为大写字母strupr(),转换为小写字母strlwr.
    5.获得字符串长度:strlen()
    函数:
    函数返回值:
    (1)函数返回值的类型应当是函数定义是指出的函数类型;
    (2)当return与函数指定类型不一致时用函数返回值的类型为准;
    函数的递归:函数的递归之所以能实现,是因为函数的每一个执行过程在栈中都有自己的形参和局部变量的副本,这些副本和该函数的其他执行过程不发生关系。
    内部函数和外部函数:
    函数是c语音程序中的最小单位,可以把一个函数或多个函数保存为一个文件,这个文件称为源文件

    1.内部函数:这个函数只能被所在的源文件使用,在定义内部函数时要在函数返回值和函数名前面加上static进行修饰:static 返回值类型 函数名(参数列表)
    2.外部函数 :这个函数可以被其他的源文件使用,在定义外部函数时要在函数返回值和函数名前面加上extern进行修饰:extern 返回值类型 函数名(参数列表),在使用外部函数时,要用extern声明所用的函数为外部函数。
    c语音中如果不声明函数为内部函数或者外部函数,将默认为外部函数

    局部变量和全局变量:
    1.局部变量:在一个函数的内部定义的变量是局部变量。
    语句块内声明的变量只在该语句块内部起作用,当然也包括嵌套在其中的子语句块。
    在c语音中,位于不同作用域的变量可以使用相同的标识符。内部作用域的变量会屏蔽外层作用域的那个变量。
    2.全局变量:程序的编译单位是源文件,如果一个变量在所有函数外部声明,这个变量就是全局变量。
    全局变量不属于某个函数,而属于整个源文件。如果外部文件要使用,这要用extern在修饰
    函数
    abs() 求绝对值
    acos() 求反余弦
    asin() 求反正弦
    atan() 求反正切
    atan2() 求反正切,按符号判定象限
    ceil() 求不小于某值的最小整数(求上界)
    cos() 求余弦
    cosh(
    exp() 求e的幂
    fabs() 求浮点数的绝对值
    floor() 求不大于某值的最大整数(求下界)
    fmod() 求模数
    frexp() 求数的科学表示法形式
    labs() 求长整型数的绝对值
    ldexp() 以科学计数法计算
    ldiv() 以长整型返回商和余数
    log() 自然对数
    log10() 以10为底的自然对数
    modf() 将一个数分解成整数和小数部分
    pow() 求幂
    sin() 求正弦
    sinh() 求双曲正弦
    sqrt() 求平方根
    tan() 求正切
    tanh() 求双曲正切
    isalpha()检查参数是否为字母,为字母返回非零,使用时要包含头文件ctype.h
    isdigit()检查参数是否为数字,为数字返回非零,使用时要包含头文件ctype.h
    isalnum()检查参数是否为字母或者数字,为字母或者数字返回非零,使用时要包含头文件ctype.h

    指针:
    地址就是内存区中对每个字节的编号,变量的地址称为该变量的指针
    指针变量是指向一个变量的地址
    地址可以形象的称为指针
    在程序代码中是通过变量名对内存单元进行存取操作,但是代码经过编译后已经将变量名转换为该变量在内存中的存放地址,对变量名的存取都是通过地址进行的。
    不能把一个数赋值给指针变量
    指针变量值的引用:*指针变量 其含义是引用指针变量所指向的值

    数组与指针
    1.一维数组的数组名称就是数组在内存中的首地址。
    2.二维数组中&a[0]是第0行的首地址,当然&a[n]就是第n行的首地址,a+n表示第n行的首地址
    3.利用指针指引二维数组的关键是要记住*(a+i)与a[i]是等价的。
    eg:表示第n行第m列的元素的方法:a[n][m], *(*(a+n)+m), (a[n]+m)

    字符串与指针
    将字符串赋值给指针变量其实是把字符串的第一个字符的地址赋值给指针变量。
    eg: char *string="hello mingri"
    数组指针与指针数组的差别
    数组指针(也称行指针)
    定义 int (*p)[n];
    ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。

    指针数组
    定义 int *p[n];
    []优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,这样赋值是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。
    这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间

    函数在编译的时候会分配一个入口地址,该入口地址就称为函数的指针


    文件:
    1.保存到一个不同于计算机主存的保存介质上的数据叫数据文件
    2.文件是保存到一个共同文件名下的数据集合
    3.文件流是用于连接保存到物理设备上的文件到一个程序的单向传输工具
    4.命名一个文件流是通过声明一个有FILE类型的变量名实现的。一旦声明这个文件流,他的名字就变成一个c语言程序内的文件名

    文件的打开: FILE *fp ; fp=fopen(文件名,文件的使用方式);
    文件名字符串可以带路径,如果用路径表示要用“//”而不是“/”
    exit是一个库函数,exit(1)表示发生错误后退出程序,exit(0)表示正常退出

  • 相关阅读:
    第10天, BFC, IE浏览器常见兼容问题, css Hack, 图片优化, 项目测试检查
    day08,iconfont的使用,精灵技术,css小箭头制作
    day7,vertical-align,显示与隐藏 ,圆角 边框,透明度及兼容,ps常用工具,项目规范,icon怎么用
    五大浏览器以及内核
    块状元素和行内元素的区别
    LESS使用指南
    用grunt搭建自动化的web前端开发环境
    grunt前端打包--css篇
    SASS用法指南
    Angular Prerender SEO实践
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/13230591.html
Copyright © 2011-2022 走看看