180322

知识点1:  C语言中整型数组定义的时候,初始值是0,如下图:

 double f[10];
//float f[10];
printf("%f
",f[1]);

     输出结果

       

  这里输出格式是%f,后面会有小数点六位


2    知识点2: 循环给数组赋值,注意输出格式

int main(void){ 
  int i;
  double f[10];for(i=0;i<10;i++){
     f[i]=i;      
     printf("%.1f ",f[i]); //输出结果0.0  1.0  2.0 ...9.0 
  }
}

 输出结果如下:

  


3    指针  ,关于指针:可以参考一下这个博客 https://www.cnblogs.com/lulipro/p/7460206.html

      3.1 取地址&

#include<stdio.h>
#define N 80
int main(void){ 
  char ch = 'a';
  int num =97;
  printf("ch 的地址:%p
",&ch);
  printf("num的地址:%p
",&num); 
}

   运行结果:

   


    3.2  指针变量:这里记住:带*号的其实等同于变量本身,而p_age只是地址罢了!!!

#include<stdio.h>
#define N 80
int main(void){ 
  int age=19;
  int *p_age=&age;//通过指针修改指向的内存数据
  *p_age=20; //通过指针读取指向的内存数据
  
  printf("age = %d
",*p_age); 
  printf("age = %d
",age);
  printf("%p",p_age);
}

   运行结果:

    


  4  两数交换,用函数实现,这样干是不行的,这样其实在主函数的值a=5,b=3,只是copy了一份给交换的函数,其实函数运行完后,并不是对实际主函数的值进行操作.

#include<stdio.h>
int wap_bad(int a,int b);
int main(void){ 
  int a=5;
  int b=3;
  wap_bad(a,b);
  printf("a=%d  b=%d
",a,b);
}
int wap_bad(int a,int b){
    int t;
    t=a;
    a=b;
    b=t;
    return a,b;
}

  运行结果:

      


    正确的写法:用指针实现

#include<stdio.h>
int wap_ok(int *pa,int *pb); 
int main(void){ 
  int a=5;
  int b=3;
  wap_ok(&a,&b);
  printf("a=%d  b=%d
",a,b);
}
int wap_ok(int *pa,int *pb){
    int t;
    t=*pa;//把a给t,这里直接取的a的内存地址 
    *pa=*pb;//把b给a, 
    *pb=t;//a给b 
//    return a,b;
}

  运行结果:

    

       

      

原文地址:https://www.cnblogs.com/sunnybowen/p/8625369.html