一、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);
}