網站首頁 編程語言 正文
1、選擇語句
如果你好好學習,校招時拿一個好offer,走上人生巔峰。如果你不學習,畢業等于失業,回家賣紅薯。這就是選擇!
#include<stdio.h>
int main()
{
?? ?int a = 0;
?? ?printf("1:好好學習,拿大廠offer ? ? 2、宿舍擺爛,畢業即失業\n\n");
?? ?printf("請選擇 1 或者 0 :->");
?? ?scanf("%d", &a);
?? ?if (a == 1)
?? ?{
?? ??? ?printf("加油,為你點贊!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("回家賣紅薯!\n");
?? ?}
?? ?return 0;
}
2、循環語句
C語言中有三種循環,分別是:for循環、while循環、do while循環,下面我用例子來演示。
for循環
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?for (i = 0; i < 10; i++)
?? ?{
?? ??? ?printf("%d ", i);
?? ?}
?? ?return 0;
}
while循環
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?while (i < 10)
?? ?{
?? ??? ?printf("%d ", i);
?? ??? ?i++;
?? ?}
?? ?return 0;
}
do while循環
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?do {
?? ??? ?printf("%d ", i);
?? ??? ?i++;
?? ?} while (i < 10);
?? ?return 0;
}
其中 i 為循環變量,i++ 為循環變量增值,i<10 為循環結束條件。
3、函數
函數就是一個具有特定功能的代碼塊,其作用是將代碼進行封裝,以提高代碼的重用性,提高開發效率。
#include<stdio.h>
//Add就是一個函數,用來計算兩個參數的和
int Add(int x, int y) ? // 開頭的int:函數的返回值 ?中間的int:參數的類型 ? x、y:函數的參數
{
?? ?return x + y;
}
int main()
{
?? ?int a = 0;
?? ?int b = 0;
?? ?int ret = Add(a, b); ?//調用Add函數
?? ?printf("%d\n", ret);
?? ?return 0;
}
4、數組
數組的概念
數組是具有相同元素類型的集合。
數組的定義方式
#include<stdio.h>
int main()
{
?? ?//第一種定義方式:指定大小,并對其進行初識化
?? ?int a1[10] = { 1,2,3,4,5,6,7,8,9,10 };
?? ?//第二種定義方式:指定大小,但不初識化
?? ?char a2[10];
?? ?//第三種定義方式:不指定大小,但必須得初始化,它會根據你初始化元素個個數自動計算數組的大小
?? ?float a3[] = { 1.0,2.0,3.0 };
?? ?return 0;
}
數組的下標
C語言規定:數組的每個元素都有一個下標,且數組下標是從0開始的。數組可以通過下標來訪問數組元素。
數組的簡單使用
#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語言的操作符涉及到的細節以及知識面都比較廣,在這里我只是簡單的介紹一部分操作符的基本使用,更多的細節我會在后面的文章中進行講解。
1、算術操作符
+ - * / %
2、移位操作符
>> <<
3、位操作符
& ^ |
4、賦值操作符
= += -= *= /= &= ^= |= >>= <<=
#include<stdio.h>
int main()
{
?? ?int a = 10;
?? ?if (a == 20) ?// ==:判斷語句,判斷 a 與 20 是否相等
?? ?{
?? ??? ?printf("判斷:%d\n", a);
?? ?}
?? ?if (a = 20) ?// =:賦值語句,把 10 賦給 a,這條語句始終為真
?? ?{
?? ??? ?printf("賦值:%d\n", a);
?? ?}
?? ?return 0;
}
5、單目操作符
- ! 邏輯反操作
- - 負值
- + 正值
- & 取地址
- sizeof 操作數的類型長度(以字節為單位)
- ~ 對一個數的二進制按位取反
- – 前置、后置–
- ++ 前置、后置++
- * 間接訪問操作符(解引用操作符)
- (類型) 強制類型轉換
#include<stdio.h>
int main()
{
int a = 10;
int b = a++; //后置++,先使用,再++,即先把 a = 10 賦給 b ,a 再++,執行后 b=10,a=11
int c = ++a; //前置++,先++,再使用,即先讓 a++ 變成 12,再把 a 賦給 c ,執行后 c=12,a=12;
printf("a = %d\nb = %d\nc = %d", a, b, c);
return 0;
}
1
6、關系操作
> >= < <= != ==
7、邏輯操作符
&& 邏輯與
|| 邏輯或
#include<stdio.h>
int main()
{
?? ?int a = 10;
?? ?int b = 20;
?? ?if (a == 10 && b == 20) ? //邏輯與,必須兩個條件都為真if語句才會執行
?? ?{
?? ??? ?printf("a && b\n");
?? ?}
?? ?if (a == 10 || b == 30) ? //邏輯或,只有兩個條件都為假時if語句才不會執行
?? ?{
?? ??? ?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、逗號表達式
exp1, exp2, exp3, …expN
#include<stdio.h>
main()
{
?? ?int x, y, z;
?? ?x = y = 1;
?? ?//逗號表達式,從左向右依次執行每個運算,但是只取最后一個逗號的結果
?? ?z = (x++, y++, ++y); ? ?//先執行前面兩個逗號,x++ -> x = 2, y++ -> y=2, 再最后一個逗號,z=++y,前置++,所以z=y=3
?? ?printf("x = %d\ny = %d\nz = %d\n", x, y, z);
?? ?return 0;
}
這里要特別注意:賦值運算符的優先級是高于逗號表達式的,也就是說,如果這里 z 后面沒有括號,那么編譯器會最先將 x 的值賦給 z,再執行后面的逗號表達式。
#include<stdio.h>
main()
{
?? ?int x, y, z;
?? ?x = y = 1;
?? ?//逗號表達式,從左向右依次執行每個運算,但是只取最后一個逗號的結果
?? ?//賦值運算符優先級高于逗號表達式,先將 x 賦給 z,那么 z = 1;
?? ?//再執行前面兩個逗號,x++ -> x = 2, y++ -> y=2, 再最后一個逗號,++y -> y = 3
?? ?z = x++, y++, ++y;
?? ?printf("x = %d\ny = %d\nz = %d\n", x, y, z);
?? ?return 0;
}
10、下標引用、函數調用和結構成員
[] () . ->
#include<stdio.h>
struct Stu { ? ? ? ? //定義一個結構體類型
?? ?char name[15];
?? ?int age;
?? ?char sex[6];
};
int main()
{
?? ?struct Stu s = { "張三",20,"男" }; ? //用結構體類型定義一個結構體變量 s 并對其初始化
?? ?printf("%s\t%d\t%s\n", s.name, s.age, s.sex); ?//用 . 操作符對結構體成員進行訪問
?? ?return 0;
}
原文鏈接:https://blog.csdn.net/m0_62391199/article/details/124099647
相關推薦
- 2022-01-31 pytorch:tensor與numpy轉換 & .cpu.numpy()和.numpy()
- 2023-04-07 關于C#中的Invoke示例詳解_C#教程
- 2022-12-28 jquery點擊獲取動態數據進行傳參問題_jquery
- 2022-11-09 Python?Pandas讀寫txt和csv文件的方法詳解_python
- 2022-04-08 關于C++11中限定作用域的枚舉類型的問題_C 語言
- 2022-06-16 golang?gorm的Callbacks事務回滾對象操作示例_Golang
- 2022-03-15 this.$cookie.set(‘token‘, data.token) token賦值失效
- 2022-05-23 Oracle配置dblink訪問PostgreSQL的操作方法_oracle
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支