C語(yǔ)言選擇、循環(huán)、函數(shù)、數(shù)組與操作符
1、選擇語(yǔ)句
如果你好好學(xué)習(xí),校招時(shí)拿一個(gè)好offer,走上人生巔峰。如果你不學(xué)習(xí),畢業(yè)等于失業(yè),回家賣(mài)紅薯。這就是選擇!
#include<stdio.h> int main() { ?? ?int a = 0; ?? ?printf("1:好好學(xué)習(xí),拿大廠offer ? ? 2、宿舍擺爛,畢業(yè)即失業(yè)\n\n"); ?? ?printf("請(qǐng)選擇 1 或者 0 :->"); ?? ?scanf("%d", &a); ?? ?if (a == 1) ?? ?{ ?? ??? ?printf("加油,為你點(diǎn)贊!\n"); ?? ?} ?? ?else ?? ?{ ?? ??? ?printf("回家賣(mài)紅薯!\n"); ?? ?} ?? ?return 0; }
2、循環(huán)語(yǔ)句
C語(yǔ)言中有三種循環(huán),分別是:for循環(huán)、while循環(huán)、do while循環(huán),下面我用例子來(lái)演示。
for循環(huán)
#include<stdio.h> int main() { ?? ?int i = 0; ?? ?for (i = 0; i < 10; i++) ?? ?{ ?? ??? ?printf("%d ", i); ?? ?} ?? ?return 0; }
while循環(huán)
#include<stdio.h> int main() { ?? ?int i = 0; ?? ?while (i < 10) ?? ?{ ?? ??? ?printf("%d ", i); ?? ??? ?i++; ?? ?} ?? ?return 0; }
do while循環(huán)
#include<stdio.h> int main() { ?? ?int i = 0; ?? ?do { ?? ??? ?printf("%d ", i); ?? ??? ?i++; ?? ?} while (i < 10); ?? ?return 0; }
其中 i 為循環(huán)變量,i++ 為循環(huán)變量增值,i<10 為循環(huán)結(jié)束條件。
3、函數(shù)
函數(shù)就是一個(gè)具有特定功能的代碼塊,其作用是將代碼進(jìn)行封裝,以提高代碼的重用性,提高開(kāi)發(fā)效率。
#include<stdio.h> //Add就是一個(gè)函數(shù),用來(lái)計(jì)算兩個(gè)參數(shù)的和 int Add(int x, int y) ? // 開(kāi)頭的int:函數(shù)的返回值 ?中間的int:參數(shù)的類(lèi)型 ? x、y:函數(shù)的參數(shù) { ?? ?return x + y; } int main() { ?? ?int a = 0; ?? ?int b = 0; ?? ?int ret = Add(a, b); ?//調(diào)用Add函數(shù) ?? ?printf("%d\n", ret); ?? ?return 0; }
4、數(shù)組
數(shù)組的概念
數(shù)組是具有相同元素類(lèi)型的集合。
數(shù)組的定義方式
#include<stdio.h> int main() { ?? ?//第一種定義方式:指定大小,并對(duì)其進(jìn)行初識(shí)化 ?? ?int a1[10] = { 1,2,3,4,5,6,7,8,9,10 }; ?? ?//第二種定義方式:指定大小,但不初識(shí)化 ?? ?char a2[10]; ?? ?//第三種定義方式:不指定大小,但必須得初始化,它會(huì)根據(jù)你初始化元素個(gè)個(gè)數(shù)自動(dòng)計(jì)算數(shù)組的大小 ?? ?float a3[] = { 1.0,2.0,3.0 }; ?? ?return 0; }
數(shù)組的下標(biāo)
C語(yǔ)言規(guī)定:數(shù)組的每個(gè)元素都有一個(gè)下標(biāo),且數(shù)組下標(biāo)是從0開(kāi)始的。數(shù)組可以通過(guò)下標(biāo)來(lái)訪(fǎng)問(wèn)數(shù)組元素。
數(shù)組的簡(jiǎn)單使用
#include <stdio.h> int main() { ? ? int i = 0; ? ? int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; ? ? for (i = 0; i < 10; i++) ? ? { ? ? ? ? printf("%d ", arr[i]); ? ? } ? ? printf("\n"); ? ? return 0; }
5、操作符
C語(yǔ)言的操作符涉及到的細(xì)節(jié)以及知識(shí)面都比較廣,在這里我只是簡(jiǎn)單的介紹一部分操作符的基本使用,更多的細(xì)節(jié)我會(huì)在后面的文章中進(jìn)行講解。
1、算術(shù)操作符
+ - * / %
2、移位操作符
>> <<
3、位操作符
& ^ |
4、賦值操作符
= += -= *= /= &= ^= |= >>= <<=
#include<stdio.h> int main() { ?? ?int a = 10; ?? ?if (a == 20) ?// ==:判斷語(yǔ)句,判斷 a 與 20 是否相等 ?? ?{ ?? ??? ?printf("判斷:%d\n", a); ?? ?} ?? ?if (a = 20) ?// =:賦值語(yǔ)句,把 10 賦給 a,這條語(yǔ)句始終為真 ?? ?{ ?? ??? ?printf("賦值:%d\n", a); ?? ?} ?? ?return 0; }
5、單目操作符
- ! 邏輯反操作
- - 負(fù)值
- + 正值
- & 取地址
- sizeof 操作數(shù)的類(lèi)型長(zhǎng)度(以字節(jié)為單位)
- ~ 對(duì)一個(gè)數(shù)的二進(jìn)制按位取反
- – 前置、后置–
- ++ 前置、后置++
- * 間接訪(fǎng)問(wèn)操作符(解引用操作符)
- (類(lèi)型) 強(qiáng)制類(lèi)型轉(zhuǎn)換
#include<stdio.h> int main() { int a = 10; int b = a++; //后置++,先使用,再++,即先把 a = 10 賦給 b ,a 再++,執(zhí)行后 b=10,a=11 int c = ++a; //前置++,先++,再使用,即先讓 a++ 變成 12,再把 a 賦給 c ,執(zhí)行后 c=12,a=12; printf("a = %d\nb = %d\nc = %d", a, b, c); return 0; } 1
6、關(guān)系操作
> >= < <= != ==
7、邏輯操作符
&& 邏輯與
|| 邏輯或
#include<stdio.h> int main() { ?? ?int a = 10; ?? ?int b = 20; ?? ?if (a == 10 && b == 20) ? //邏輯與,必須兩個(gè)條件都為真if語(yǔ)句才會(huì)執(zhí)行 ?? ?{ ?? ??? ?printf("a && b\n"); ?? ?} ?? ?if (a == 10 || b == 30) ? //邏輯或,只有兩個(gè)條件都為假時(shí)if語(yǔ)句才不會(huì)執(zhí)行 ?? ?{ ?? ??? ?printf("a || b\n"); ?? ?} ?? ?return 0; }
8、條件操作符
exp1 ? exp2 : exp3
#include<stdio.h> int main() { ?? ?int a = 10; ?? ?int b = 20; ?? ?int max = a > b ? a : b; ?//條件操作符,如果 a>b 條件成立,就把 a 賦給 max,否則 b 賦給 max ?? ?printf("max = %d\n", max); ?? ?return 0; }
9、逗號(hào)表達(dá)式
exp1, exp2, exp3, …expN
#include<stdio.h> main() { ?? ?int x, y, z; ?? ?x = y = 1; ?? ?//逗號(hào)表達(dá)式,從左向右依次執(zhí)行每個(gè)運(yùn)算,但是只取最后一個(gè)逗號(hào)的結(jié)果 ?? ?z = (x++, y++, ++y); ? ?//先執(zhí)行前面兩個(gè)逗號(hào),x++ -> x = 2, y++ -> y=2, 再最后一個(gè)逗號(hào),z=++y,前置++,所以z=y=3 ?? ?printf("x = %d\ny = %d\nz = %d\n", x, y, z); ?? ?return 0; }
這里要特別注意:賦值運(yùn)算符的優(yōu)先級(jí)是高于逗號(hào)表達(dá)式的,也就是說(shuō),如果這里 z 后面沒(méi)有括號(hào),那么編譯器會(huì)最先將 x 的值賦給 z,再執(zhí)行后面的逗號(hào)表達(dá)式。
#include<stdio.h> main() { ?? ?int x, y, z; ?? ?x = y = 1; ?? ?//逗號(hào)表達(dá)式,從左向右依次執(zhí)行每個(gè)運(yùn)算,但是只取最后一個(gè)逗號(hào)的結(jié)果 ?? ?//賦值運(yùn)算符優(yōu)先級(jí)高于逗號(hào)表達(dá)式,先將 x 賦給 z,那么 z = 1; ?? ?//再執(zhí)行前面兩個(gè)逗號(hào),x++ -> x = 2, y++ -> y=2, 再最后一個(gè)逗號(hào),++y -> y = 3 ?? ?z = x++, y++, ++y; ?? ?printf("x = %d\ny = %d\nz = %d\n", x, y, z); ?? ?return 0; }
10、下標(biāo)引用、函數(shù)調(diào)用和結(jié)構(gòu)成員
[] () . ->
#include<stdio.h> struct Stu { ? ? ? ? //定義一個(gè)結(jié)構(gòu)體類(lèi)型 ?? ?char name[15]; ?? ?int age; ?? ?char sex[6]; }; int main() { ?? ?struct Stu s = { "張三",20,"男" }; ? //用結(jié)構(gòu)體類(lèi)型定義一個(gè)結(jié)構(gòu)體變量 s 并對(duì)其初始化 ?? ?printf("%s\t%d\t%s\n", s.name, s.age, s.sex); ?//用 . 操作符對(duì)結(jié)構(gòu)體成員進(jìn)行訪(fǎng)問(wèn) ?? ?return 0; }
到此這篇關(guān)于C語(yǔ)言選擇、循環(huán)、函數(shù)、數(shù)組與操作符的文章就介紹到這了,更多相關(guān)C語(yǔ)言函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言常見(jiàn)排序算法之插入排序(直接插入排序,希爾排序)
這篇文章介紹C語(yǔ)言常見(jiàn)排序算法之插入排序(直接插入排序,希爾排序),主要分享介紹的是插入排序的兩種常用算法,直接插入排序和希爾排序,需要的朋友可以參考一下2022-07-07linux下基于C語(yǔ)言的信號(hào)編程實(shí)例
這篇文章主要介紹了linux下基于C語(yǔ)言的信號(hào)編程,實(shí)例分析了信號(hào)量的基本使用技巧與相關(guān)概念,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07C數(shù)據(jù)結(jié)構(gòu)循環(huán)鏈表實(shí)現(xiàn)約瑟夫環(huán)
這篇文章主要介紹了C數(shù)據(jù)結(jié)構(gòu)循環(huán)鏈表實(shí)現(xiàn)約瑟夫環(huán)的相關(guān)資料,需要的朋友可以參考下2017-05-05從頭學(xué)習(xí)C語(yǔ)言之二維數(shù)組
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言之二維數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01Visual Studio Community 2022(VS2022)安裝圖文方法
這篇文章主要介紹了Visual Studio Community 2022(VS2022)安裝方法,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09MFC擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的實(shí)現(xiàn)方法
這篇文章主要介紹了MFC擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的實(shí)現(xiàn)方法,詳細(xì)講述了實(shí)現(xiàn)擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的具體步驟與方法,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10