#include<stdio.h>
//b=a++ 先使用(指派) 後++
//b=+=a 先++ 後使用
//"[]"下标引用操作符
//“()”也是函數調用操作符
//有符号數:符号歸到最高位的位置1 負數;0 正數;
//隻要是整數,存儲的都是補碼!!!
//自己定義的符号名,不能和C語言自帶的符号名沖突
//typedef:類型定義、類型重定義
//unsigned無符号定義
//局部變量一但出了{}範圍就自動停止 并且銷毀了
//static int a ; a是一個“靜态局部變量”。會儲存上一次留下的值!!!!! 作用:修飾局部變量 其生命周期延長了
//static 修飾全局變量改變了變量的作用域,讓其隻能在自己所在的.c檔案裡面使用
//聲明外部函數!!!!!:extern int f(x)(int ,int );
//指針變量 專門用來存放位址的 int *p=&a;//位址用“%p”來輸出 p的類型是int *的 p還是變量!!!_
//-p是一個指針變量(p所指向的那個對象a是int 類型的是以是"int*p";
//*p - 意思是通過p裡面的位址找到其代表的變量 (“*”叫解引用操作符、間接通路操作符)
////如:
// int a = 10;
// int *p = &a;
// *p = 20;//改變了a的值
// printf("a=%d\n", a);
// double d = 3.14;
// double *dp = &d;
// *dp = 5.5;
// printf("d=%lf\n", d);//double類型是lf
//指針變量的大小:32位的是 4 位元組;64位的是 8位元組!!!!!
//無論什麼類型的指針;(int*,double,char,..)32位的大小都是4!!!!!64位都是8.
//結構體(例如 人或書。。複雜的對象不是簡簡單單用一個數字或符合就能表達的 其有許許多多屬性)
//結構體是自己創造出的類型!!!!!
//“struct”關鍵字來描述
struct BOOK //描述一本書
{
char name[20];//描述書名 char-數組
short price;//定義一個整數變量 price表示價格
};//“;”必須加上 其是為了結束類型定義的
int main(){
//利用結構體類型 建立結構體變量b1
struct BOOK b1={"C語言程式設計",55}; //建立一本書b1 書名C語言程式設計,價格55 整形數值不要“”包圍
printf("書名:%s\n",b1.name);//%s 字元串輸出符号 b1.name 表示其值是b1當中的書名
printf("價格:%d\n", b1.price);//價格其是一個數
b1.price = 15;//也可以修改其值
//隻有非數組操作符才能這樣指派修改!!!!!
strcpy(b1.name, "C++");//數組變量隻能用”strcpy()“函數函數修改 !!!!!!
printf("修改後的價格:%d\n", b1.price);
//struct BOOK b1 = { "C語言程式設計", 55 };
//其類型是 struct BOOK為一個類型!!!!!
//如果要取位址:struct BOOK *p=&b1;!!!!!!!!
struct BOOK *p = &b1;
//利用指針變量p列印出其書名與價格!!!!!
printf("書名:%s\n", (*p).name);
printf("價格:%d\n", (*p).price);
//或可以簡化其 利用“->‘指向字元!!!!!
printf("書名:%s\n", p->name);
printf("價格:%d\n", p->price);
//其中“."操作符利用與結構體變量當中 ”.成員“可以找到成員
// “->"利用的是結構體指針”->成員“可以找到成員
return 0;
}
int main(){
//隻有一個;分号的叫做“空語句”
//if語句大于什麼并且小于什麼 使用的是邏輯與&&、或||
//編譯器認為在沒有括号的情況下:else是與其離得最近的if進行比對的
//輸出奇數1~100
//int i = 1;
//while (i<100)
//{
// if (i %2 == 1)
// printf("%d\n ", i);
// i++;
//}
//
//switch (case的 整形表達式){case1:printf();break; case2:printf();break; case3:printf();break; ...;default:.. }
//break:跳出語句循環(不一定要全加) case的後面必須是整形常量表達式!!!!! default在所有case沒有滿足後用此輸出!
//也可以:switch (case的 整形表達式){case1;case2;case3;cse4;case5;printf();case6;printf();break;}
//可以把輸出類型相同的case結果放在一起!
//getchar()-擷取字元 鍵盤内地!!!!!
return 0;
}