008_stdc_C语言

回顾:
1.数组
数组的作用
数组定义
int a[n];
a = 0; //不可以
数组的使用
通过循环进行遍历读写
a[0] 第一个元素
....
a[n-1] 最后了一个元素
a[n] 访问越界

         a[1]  当做一个普通的变量进行使用


      数组的初始化
         定义数组不初始化,里面是不确定值

int a[n] = {0};
int a[n] = {2}; //只有第一个是2

 int a[n] ={[1]= 2,[4]=5};//下标1等于2,下标4等于5


数组地址
看到数组元素的地址是连续的
sizeof 对数组进行字节数计算 可以得到整个数组 字节数

      C99 支持的特性 可变长数组

定义数组时,里面的长度是变量, 根据数组定义时 变量里面的值 确定 数组的长度,定义后,数组的长度不可变.

多维数组

int a[4]; //一维
int a[2][2]; // 二维

    a[0][0],a[0][1],a[1][0],a[1][1]

int a[4][4][4];//三维
---------------------------------

   函数

 函数 是 0-多条语句组成的 代码片段,通过函数的 调用,可以使用该代码片段的的语句,完成一个功能,函数名是合法标示符,并且能说明语句的功能.

函数的声明
函数的定义
函数的调用

//void print_star();  //说明print_star  是一个函数, 没有参数,返回值是void
                             //声明函数的原型
   print_star();     //函数的调用/使用 ,  先声明后使用
//c 不支持 在函数中定义函数
/*
[练习]
        1. 写一个 函数原型为  void  add() 的函数;
           功能   该函数 实现 2+3 的和,并打印 2+3的结果
           在主函数中 调用 add()函数
*/
#include <stdio.h>
void  add();//函数声明1
int main(){
    add();//函数调用3
    getchar();
    getchar();
    return 0;
}
 void  add() {//函数定义2
     printf("2+3=%d
",2+3);
 }
/*
 * 函数的格式:
  函数返回值类型  函数名(函数的参数)
  {
      函数体 
  }  
 函数返回值类型:
    c89    如该不加  默认返回 int
    c99    要求加类型,否则编译报错或警告
          如果没有返回值  返回值类型为 void
          
          如果程序需要返回结果 通过return 语句 带回 返回值
          return 后的值类型   跟 函数返回值的类型一致
#include <stdio.h>
int  add(int a,int b);
int main(){
    printf("%d
",add(2,3));
    getchar();
    return 0;
}
int  add(int a,int b) {
     return a+b;
 }
函数的参数:
          如该不加 表示无参数
          支持加多个参数
函数体:
         可以为空, 表示空函数,有的故意 预留 后面补充语句
函数的结束:
         如该运行中遇到return 语句结束函数,否则 执行到最后一条语句结束.
         在子函数里调用 exit(0)  结束程序
带参数的函数   y=f(x)
        c 中的函数  支持传入参数,根据参数决定代码的执行或者返回的结果
       
        声明函数 和定义函数  参数的个数 及类型要一致
void print_star(int n)  //int  n  形参   形式参数
       int a =  10;
       print_star(a); //10 写在调用函数里面的参数 实际参数  实参
                      //形参 可以被函数体 当普通变量进行使用
                      //形参 的初始化 在调用的时候 用实参的值替换,初始化
*
*/
[练习]
       2.  函数原型 int  myabs(int x)
           功能 传入一个整数(正/负数) , 返回 该数的绝对值
          在主函数中通过scanf 输出一个 调用后 打印输出 该函数的返回结果
#include <stdio.h>
#include <math.h>
int  myabs(int x);
int main(){
    int value = 0;
    printf("请输入一个数");
    scanf("%d",&value);
    printf("%d
",myabs(value));
    getchar();
    getchar();
    return 0;
}
int  myabs(int x) {
     return abs(x);//库函数绝对值
 }

自定义

#include <stdio.h>
#include <math.h>
int  myabs(int x);
int main(){
    int value = 0;
    printf("请输入一个数");
    scanf("%d",&value);
    printf("%d
",myabs(value));
    getchar();
    getchar();
    return 0;
}
int  myabs(int x) {
    if (x < 0)
        x=-x;
    return x;
 }
 变量作用域
                 //在函数里面可以声明变量,局部变量,只能在当前函数通过
                    //变量名进行访问,在同一函数变量名不重名,其他函数之间
                    //可以重名
                    //
                    //C89  变量声明必须在函数最开始位置,C99无此规定
#include <stdio.h>
#include <math.h>
int  myabs(int x);
int main(){
    int x = 0;
    printf("请输入一个数");
    scanf("%d",&x);
    printf("%d
",myabs(x));
    printf("main中的x=%d
",x);
    getchar();
    getchar();
    return 0;
}
int  myabs(int x) {
    if (x < 0)
        x=-x;
    printf("myabs中的x=%d
",x);
    return x;
 }

请输入一个数-500
myabs中的x=500
500
main中的x=-500
/*
 * [练习]
 *        编写一个 void swap(int a,int b);
 *        功能:  实现 a ,b 值交换
*/
#include <stdio.h>
int  swap(int a,int b);
int main(){
    int x = 5;
    int y =2;
    swap(x,y);
    getchar();
    return 0;
}
viod  swap(int a,int b) {
    int value = 0;
    value =a;
    a=b;
    b=value;
    printf("%d,%d
",a,b);
    return a,b;
 }
 
 
 
 
何所为,不仅仅是一种态度,更是一种艺术!
原文地址:https://www.cnblogs.com/tanzizheng/p/12904940.html