一、C语言常用
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*
< >引用的是编译器的类库路径里面的头文件
" "引用的是你程序目录的相对路径中的头文件
*/
//华氏转换为摄氏 公式:c = 5/9(f - 32);
float C(float f)
{
return 5/9.0 * (f - 32); //两侧有至少一个为浮点型就会进行带小数的除法
}
//三角形额面积计算
double Area(double a,double b,double c)
{
double q = (a+b+c)/2.0;
return sqrt(q*(q-a)*(q-b)*(q-c));
}
int main()
{
printf("Hello world!\n");
printf("5!= %.4f\n",C(43.2)); //.4f表示保留四位小数部分
printf("Area = %.8lf\n",Area(3.0,4.0,5.0)); //.lf默认输出6位小树部分,需要指定输出的位数
/*
double a,b,c;
printf("输入边长(3.1,4,3,6,4)\n");
scanf("%lf,%lf,%lf,",&a,&b,&c); //输入scanf后面为变量的地址
printf("Area = %lf\n",Area(a,b,c));
char x = getchar(); //从屏幕获取一个字符
putchar(x); //向屏幕输出一个字符
char str[10];
gets(str);
puts(str);
*/
char s1[10] = {"Jay"};
char s2[10];
strcpy(s2,s1); //字符串复制函数
puts(s2);
char s3[10] = "Jl";
printf("%d\n",strcmp(s1,s3)); //字符串比较函数
printf("%d\n",strlen(s1)); // 字符串长度函数
printf("%s\n",strlwr(s1)); //转为小写
printf("%s\n",strupr(s1)); //转为大写
return 0;
}
二、指针
1.指针的类型
基本数据类型比如 int、char ,还有 一些复杂的比如 int (*p)[], 指向数组的指针,像这种的判断就是指针名字去掉 , 指针的类型类型就是 int(*)[],其实就是指向数组的指针
2.指针所指向的类型
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。 你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。
例如:int*ptr:指针所指向的类型是int int(*ptr)[3]:指针所指向的的类型是int()[3]
3.指针的值
指针指向的内存的数据三、指针作为参数进行传递
(1)、传值(通过指针指向的内存里面的数据进行交换)
(2)、传址
void SwapTest1(int *p1,int *p2) //地址里面的数据改变
{
int x = *p1;
*p1 = *p2;
*p2 = x;
}
void SwapTest2(int *p1,int *p2) //指针指向改变,最后指针p1,p2释放消失,其实最后数据a,b的值并没有改变
{
int *temp = p1;
p1 = p2;
p2 = temp;
}
void Change()
{
int a = 10,b = 100;
int *a_point = &a,*b_point = &b;
printf("a = %d,b = %d\n",a,b);
SwapTest1(a_point,b_point);
printf("a = %d,b = %d\n",a,b);
SwapTest2(a_point,b_point);
printf("a = %d,b = %d\n",a,b);
}