知识点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; }
运行结果: