開始步入正軌,有點那味了
選擇語句
if語句
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
int input = 0;
printf("你要好好敲代碼嗎?(1/0)n");
scanf("%d", &input);
if (input == 1)
printf("一份好工作n");
else
printf("回家賣紅薯n");
return 0;
}
循環(huán)語句
while語句
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
int line = 0;
printf("入坑,開始學(xué)習(xí)n");
while (line < 20000)
{
printf("敲一行代碼:%dn",line);
line++;
}
if (line >= 20000)
printf("ding~找到一個好工作d=====( ̄▽ ̄*)bn");
return 0;
}
函數(shù)
定義一個求和函數(shù)
int Add(int x, int y)
{
int z = x + y;
return z;
}
int main()
{
int a = 100;
int b = 200;
int sum = 0;
sum = Add(a, b);
printf("sum=%dn", sum);
return 0;
}
數(shù)組
一組相同類型元素的集合
定義數(shù)組:int arr[10]={0};//定義了一個存放10個整數(shù)數(shù)字的數(shù)組
char ch[20};//字符型數(shù)組
float arr2[5];//浮點型數(shù)組
數(shù)組是通過下標(biāo)訪問元素,例如:int arr[10]={1,2,3,4,5,6,7,8,9,10};通過語句printf(“%dn”,arr[4]);可以打印數(shù)字5;即arr[下標(biāo)]
操作符
此次介紹了移位操作符
左移操作符<<,向左移動二進制位;
移位之后變量本身是不變的,變的是操作后產(chǎn)生的一個值,例如代碼
int main()
{
int a=1;//二進制狀態(tài)下后四位是0001
int b=a<<2;
printf("%dn",b);//b的值為4,二進制狀態(tài)下最后四位的狀態(tài)是0100
printf("%dn",a);//變量a還是1
return 0;
}
單目操作符、雙目操作符、三目操作符
所謂幾目就是指的有幾個操作數(shù)
單目操作符有:!a,-a,,a++;雙目操作符有:a+b;三目操作符有:exp1?exp2:exp3,這個表達式的意思可以解釋為exp1若成立,則整個表達式的值為exp2,若exp1不成立則整個表達式的值為exp3
關(guān)鍵字
typedef
為類型重命名,即給一個類型起名字
typedef unsigned int uint_32;//將unsigned int重命名為unint_32,所以unint_32也是一個類型名
static
1.修飾局部變量–靜態(tài)局部變量:使局部變量的生命周期變長
2.修飾全局變量–靜全局部變量:使全局變量只能在自己所在的源文件內(nèi)使用
3.修飾函數(shù)–靜態(tài)函數(shù):把函數(shù)本來的外部鏈接屬性變成內(nèi)部鏈接屬性
總結(jié):讓作用范圍小的變大,大的變小
指針
指針變量:一種用來存放地址的指針變量,類型為int*(這里的*只是個形式,說明變量是指針變量)
解引用:根據(jù)指針變量存放的地址找到該地址的變量;*變量名,(這里的*是操作符)
int main()
{
int a=10;//定義一個變量,申請4個字節(jié)內(nèi)存
int* p=&a;//取地址,把地址放到p的申請的內(nèi)存里,這里的*說明p就是指針變量
*p=20;//* --解引用操作符,根據(jù)p中的地址找到a,并對a進行操作
printf("a=%dn",a);
return 0;//打印結(jié)果為20
}
執(zhí)行流程可以理解為:房東找了一個房間出租,房間起了個名叫做a雅居,住進來個人叫10君,房東看了看a雅居的門牌號(這個過程就是&a),假設(shè)地址為0x0012ff40記在本子p上,本子的規(guī)格為int*;某一天房東看10君不順眼,想讓20君住進去,房東根據(jù)本子p上的地址(即0x0012ff40)找到了10君(這個過程就是*p),把他趕了出去,讓20君住進去;現(xiàn)在去a雅居找到的人就是20君
流程圖:

??int a=10;解釋:申請一塊內(nèi)存命名為a,這塊內(nèi)存放的值為10,這塊內(nèi)存的地址為0x0012ff40
int*p=&a;解釋:申請一塊內(nèi)存命名p,把a的地址放到這塊內(nèi)存中;這塊內(nèi)存p也有地址,但此時不考慮(&a就是獲取a的地址)
*p=20;解釋:*p(即解引用)根據(jù)p內(nèi)存儲的地址找到a,此時*p就相當(dāng)于a,對*p的操作相當(dāng)于對a進行操作;所以把20賦給*p就是把20賦給a
指針變量的大小
指針存儲的是地址,32位的機器地址是32位,也就是4個字節(jié),所以32位的機器指針大小為4個字節(jié);同理在64位的機器上地址是64位,占8個字節(jié),所以所以64位的機器指針大小為8個字節(jié)
指針變量的大小只與平臺位數(shù)有關(guān),和變量類型無關(guān)
int main() //32位平臺
{
printf("%dn",sizeof(char*));//占4個字節(jié)
printf("%dn",sizeof(short*));//占4個字節(jié)
printf("%dn",sizeof(int*));//占4個字節(jié)
printf("%dn",sizeof(double*));//占4個字節(jié)
return 0;
}
結(jié)構(gòu)體
用來描述復(fù)雜對象,本質(zhì)是一種自定義創(chuàng)造出來的類型
結(jié)構(gòu)體類型內(nèi)有成員,要用.操作符訪問
struct Book //結(jié)構(gòu)體的類型
{
char name[20];//書名
short price;//價格
};//這里的分號不可缺少!!!!!!
int main()
{
//利用結(jié)構(gòu)體類型--創(chuàng)建一個該類型的結(jié)構(gòu)體變量
struct Book b1 = { "C語言程序設(shè)計", 55 };
printf("書名:%sn", b1.name);//此處的.為屬性操作符,用于訪問結(jié)構(gòu)體成員
printf("價格:%d元n", b1.price);
b1.price = 15;//訪問到價格成員,更改數(shù)值
printf("修改后的價格:%d元n", b1.price);
return 0;
}
利用指針pb打印出書名和價格(使用.操作符打印)
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "C語言程序設(shè)計", 55 };
struct Book* pb = &b1;//定義指針變量pb *表明是指針變量
//利用指針pb打印出書名和價格
printf("%sn", (*pb).name);//解引用
printf("%dn", (*pb).price);//
return 0;
}
還可以使用->操作符打印,更加便捷
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "C語言程序設(shè)計", 55 };
struct Book* pb = &b1;//定義結(jié)構(gòu)體指針變量pb *表明是指針變量
printf("%sn", pb->name);
printf("%dn", pb->price);
return 0;
}
.操作符和->操作符的比較:
->操作符的使用結(jié)構(gòu)是:結(jié)構(gòu)體指針->成員 只要定義了結(jié)構(gòu)體指針變量就可以使用,直接從結(jié)構(gòu)體指針變量指向成員;但.操作符的使用結(jié)構(gòu)是:結(jié)構(gòu)體變量.成員 需要結(jié)合解引用,繁瑣
對于結(jié)構(gòu)體變量的更改
前文使用b1.prince=15;語句可以更改價格,因為prince是變量,所以可以直接更改數(shù)值;但是結(jié)構(gòu)體中的書名name是數(shù)組名,本質(zhì)上是地址,不可以直接更改,所以使用b1.name=”C++程序設(shè)計”;語句會報錯不可以更改。
想要更改如下所示:
struct Book//結(jié)構(gòu)體的類型
{
char name[20];//書名
short price;//價格
};
int main()
{
struct Book b1 = { "C語言程序設(shè)計", 55 };
strcpy(b1.name,"C++程序設(shè)計");//全稱strcpy-string copy,是一個字符串拷貝函數(shù)
printf("%sn",bi.name);
return 0;
}
strcpy()函數(shù)全稱是:strcpy-string copy,是一個字符串拷貝函數(shù)
此函數(shù)有兩個參數(shù),strcpy(目的地,”需拷貝的字符”)
本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/38592.html