藍橋杯零基礎到獲獎-第3章 C++ 變量和常量

藍橋杯零基礎到獲獎-第3章 C++ 變量和常量


文章目錄

  • 一、變量和常量
    • 1.變量的創建
    • 2.變量初始化
    • 3.變量的分類
    • 4.常量
      • 4.1 字?常量
      • 4.2 #define定義常量
      • 4.3 const 定義常量
      • 4.4 練習
        • 練習1:買票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66
        • 練習2:A + B 問題https://www.luogu.com.cn/problem/B2007
        • 練習3:雞兔同籠


一、變量和常量

1.變量的創建

了解清楚了類型,我們使?類型做什么呢?類型是?來創建變量的。

什么是變量呢?把經常變化的值稱為變量,不變的值稱為常量。

變量創建的語法形式是這樣的:
data_type name;
| |
| |
數據類型 變量名

int age; //整型變量
char ch; //字符變量
double weight; //浮點型變量

變量的命名規則遵循以下原則:
? 變量名只能由字?、數字和下劃線組成,且必須以字?或下劃線開頭。

? 變量名不能以純數字開頭,也不能包含特殊字符,如空格、連字符等。

? 變量名不能使?語?的關鍵字,如 int、char、if等。

? 變量名應具有意義,有助于理解變量的含義和?途。

? 變量名應簡短明了,避免使?過?的名稱。

? 變量名應區分??寫,例如 myVariable 和 myvariable 被視為兩個不同的變量。

2.變量初始化

變量在創建的時候就給?個初始值,就叫初始化。

int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 100;

3.變量的分類

? 全局變量:在?括號外部定義的變量就是全局變量全局變量的使?范圍更?,整個?程中想使?,都是有辦法使?的

? 局部變量:在?括號內部定義的變量就是局部變量局部變量的使?范圍是?較局限,只能在??所在的局部范圍內使?的

#include <iostream>
using namespace std;
int global = 2023; //全局變量
int main()
{int local = 2018; //局部變量cout << local << endl;cout << global << endl;return 0;
}

如果局部和全局變量,名字相同呢?

#include <iostream>
using namespace std;
int n = 1000;
int main()
{int n = 10;cout << n << endl; //打印的結果是多少呢?return 0;
}

其實當局部變量和全局變量同名的時候,局部變量優先使?。

? 未初始化狀態下的全局變量和局部變量

//未初始化的局部變量
#include <iostream>
using namespace std;
int main()
{//局部變量int a;char c;float f;double d;cout << "int:" << a << endl;cout << "char:" << c << endl;cout << "float:" << f << endl;cout << "double:" << d << endl;return 0;
}
//未初始化的全局變量
#include <iostream>
using namespace std;
//全局變量
int a;
char c;
float f;
double d;
int main()
{cout << "int:" << a << endl;cout << "char:" << c << endl;cout << "float:" << f << endl;cout << "double:" << d << endl;return 0;
}

在Dev-C++下:
局部變量: 全局變量:
在這里插入圖片描述
在這里插入圖片描述


4.常量

常量就是不能被改變的值,通常我們會使?三種常量:
? 字?常量
? #define 定義的常量
? const 定義的常量
下?分別介紹?下。

4.1 字?常量

整型常量: 100,-5,0,0x123 整型常量?般可以寫成10進制、8進制、16進制。
10進制數字,如: 6、17、22、123
8進制數字,?般是數字0開頭的,?如: 012 , 016
16進制數字,?般是0x開頭的數字,?如: 0x123 , 0xFF
字符常量: ‘a’
浮點型常量: 3.14 , 1E6 (科學計數法的形式)


4.2 #define定義常量

有時候也會使? #define 來定義常量,?如:

代碼舉例:

#include <iostream>
using namespace std;
#define M 100
#define CH 'x'
#define PI 3.14159
int main()
{cout << M << endl;cout << CH << endl;cout << PI << endl;return 0;
}

這?定義的 M、CH、PAI 都是常量,可以直接使?,但是不能被修改。
使? #define 定義常量的時候是不關注類型的,只關注常量的名字叫啥,常量的值是啥,編譯在處
理這種常量的時候就是直接替換,在出現常量名字的地?,通通替換成常量的內容。
上?的代碼被編譯器替換后就是:

#include <iostream>
using namespace std;
int main()
{cout << 100 << endl;cout << 'x' << endl;cout << 3.14159 << endl;return 0;
}

4.3 const 定義常量

除了上?的?式之外,C++中還可以使? const 來定義常量,這種常量會有具體的類型。?#define 定義常量更加嚴謹。語法形式如下:

?如:const double PI = 3.14159;

使??下:

#include <iostream>
using namespace std;
const double PI = 3.14159;
int main()
{int r = 0;cin >> r;cout << "周?:" << 2 * PI * r << endl;cout << "?經:" << PI * r * r << endl; //PI = 3.14;//這種寫法是錯誤的,常量不能被修改return 0;
}

習慣上,這種常量的名字?般會寫成?寫,?普通變量的名字不會全?寫,這樣就可以做?個區分。
使? const 定義的常量的好處:
? 增加了程序的可讀性, PI ? 3.14159 更加容易理解和書寫、使?。
? 增加了程序的可維護性,如果改變常量的值,只要在定義的部分修改,使?的地?也就隨之改變
了,做到了"?改全改"的效果。
? 常量是不能修改的,當然 const 定義的常量?然也不能修改

#include <iostream>
using namespace std;
int main()
{const int num = 10;num = 20; //修改num,編譯器會報錯的return 0;
}

4.4 練習

練習1:買票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66
#include<bits/stdc++.h>
using namespace std;
int main()
{int x;cin>>x;cout<<x*100;return 0;
}

練習2:A + B 問題https://www.luogu.com.cn/problem/B2007
#include<bits/stdc++.h>
using namespace std;
int main()
{int x,y;cin>>x>>y;cout<<x+y;}

練習3:雞兔同籠

https://www.luogu.com.cn/problem/B2614

#include<bits/stdc++.h>
using namespace std;
int main()
{cout<<12<< " "<<23;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89577.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89577.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89577.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物理AI是什么技術?

當英偉達CEO黃仁勛在鏈博會上明確提出“物理AI將是AI的下一浪潮”時&#xff0c;這個看似陌生的概念瞬間引發了科技圈的廣泛關注。究竟什么是物理AI&#xff1f;它與我們熟悉的人工智能有何不同&#xff1f;又將如何重塑我們與物理世界的交互方式&#xff1f; 物理AI&#xff1…

GRIB數據處理相關指令

GRIB 數據格式簡介 GRIB(General Regularly distributed Information in Binary form)&#xff0c;是由世界氣象組織&#xff08;WMO&#xff09;設計和維護的一種用于存儲和傳輸網格數據的標準數據格式&#xff0c;它是一種自描述的二進制壓縮格式&#xff0c;通常具有擴展名…

微服務學習(六)之分布式事務

微服務學習&#xff08;六&#xff09;之分布式事務一、認識Seata二、部署TC服務1、準備數據庫表2、準備配置文件3、docker部署三、微服務集成seata1、引入依賴2、改造配置3、添加數據庫表4、測試四、XA模式1、兩階段提交2、seata的XA模型3、優缺點4、實現步驟五、AT模式1、Sea…

Go實現用戶登錄小程序

寫一個用戶登錄注冊的小程序 運行程序&#xff0c;給出提示1. 注冊輸入用戶名、密碼、年齡、性別 {"用戶名": "root", "passwd": "123456", "age": 18, "sex": "男"}注冊前要判斷是否存在此用戶2. 登錄…

鴻蒙藍牙通信

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-bluetooth-low-energy 藍牙權限 module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.ACCESS_BLUETOOTH","reason": "…

Java:Map

文章目錄Map常用方法Map遍歷的三種方法先獲取Map集合的全部鍵&#xff0c;再通過遍歷來找值Entry對象forEach結合lambda表達式Map 案例分析需求我的代碼&#xff08;不好&#xff09;老師的代碼&#xff08;好&#xff09;好在哪里另外集合分為Collection和MapMap常用方法 代碼…

fastjson2 下劃線字段轉駝峰對象

在對接第三方或查詢數據庫時&#xff0c;返回的字段是下劃線分隔的&#xff0c;而在業務中需要轉成java對象&#xff0c;java對象的字段是駝峰的&#xff0c;使用fastjson2時&#xff0c;有兩種方法可以實現&#xff1a; 比如數據格式是&#xff1a; {"item_id": &q…

【硬件】藍牙音頻協議

1. 無線音頻傳輸的工作原理 在無線傳輸的過程中&#xff0c;音源設備首先將MP3、FLAC等音頻文件還原為PCM格式。通過藍牙音頻編碼轉為藍牙無線傳輸的文件&#xff0c;發送到音頻設備段。將藍牙無線傳輸的文件再次還原為PCM格式&#xff0c;之后轉為模擬信號并放大&#xff0c;通…

【宇樹科技:未來1-3年,機器人可流水線打螺絲】

在第三屆中國國際供應鏈促進博覽會上&#xff0c;宇樹科技工作人員表示&#xff0c;未來1到3年內&#xff0c;機器人產品有望從單一工業化產品&#xff0c;發展至復合化工業場景&#xff0c;如機器人搬完箱子后&#xff0c;換個 “手” 就能在流水線上打螺絲。在3到10年內&…

Spring AI 1.0版本 + 千問大模型之 文本記憶對話

上篇文章&#xff0c;主要是簡單講解了一下文本對話的功能。由于模型不具備上下文記憶功能&#xff0c;只能一問一答。因此我們需要實現記憶對話功能&#xff0c;這樣大模型回答信息才能夠更加準確。 1、pom依賴 項目構建就不詳細說了&#xff0c;大家可以參考上篇 文本對話 文…

測試學習之——Pytest Day2

一、Pytest配置框架Pytest的配置旨在改變其默認行為&#xff0c;以適應不同的測試需求和項目結構。理解其配置層級和常用參數&#xff0c;是高效使用Pytest的基礎。1. 配置的意義與層級配置的本質在于提供一種機制&#xff0c;允許用戶根據項目特點、團隊規范或特定測試場景&am…

Go-Redis × RediSearch 全流程實踐

1. 連接 Redis ctx : context.Background()rdb : redis.NewClient(&redis.Options{Addr: "localhost:6379",Password: "",DB: 0,Protocol: 2, // 推薦 RESP2// UnstableResp3: true, // 若要體驗 RESP3 Raw* })2. 準備示例數據 u…

深入理解指針(指針篇2)

在指針篇1我們已經了解了整型指針&#xff0c;當然還有很多其他類型的指針&#xff0c;像字符指針、數組指針、函數指針等&#xff0c;他們都有他們的特別之處&#xff0c;讓我們接著學習。1. 指針類型介紹和應用1.1 字符指針變量字符指針變量類型為char*&#xff0c;一般這樣使…

Python+Selenium自動化爬取攜程動態加載游記

1. 引言 在旅游行業數據分析、輿情監測或競品研究中&#xff0c;獲取攜程等平臺的游記數據具有重要價值。然而&#xff0c;攜程的游記頁面通常采用動態加載&#xff08;Ajax、JavaScript渲染&#xff09;&#xff0c;傳統的**<font style"color:rgb(64, 64, 64);backg…

ESP8266服務器建立TCP連接失敗AT+CIPSTART=“TCP“,“192.168.124.1“,8080 ERROR CLOSED

1.檢查服務器端口8081是否開啟監聽2.檢查路由項是否被防火墻攔截方法 1&#xff1a;使用 netsh查看防火墻規則?netsh advfirewall firewall show rule nameall dirout | findstr "8081"如果無輸出&#xff0c;說明防火墻未針對該端口設置規則&#xff08;可能默認攔…

Linux 內存管理(2):了解內存回收機制

目錄一、透明大頁1.1 原理1.2 透明大頁的三大優勢1.3 透明大頁控制接口詳解1.4 使用場景與最佳實踐1.5 問題排查與監控1.6 與傳統大頁的對比二、Linux伙伴系統水位機制詳解2.1 三種核心水位詳解2.2 水位在伙伴系統中的實現2.3 水位觸發機制的實際行為2.4 水位關鍵操作接口2.5 水…

前端學習7:CSS過渡與動畫--補間動畫 (Transition) vs 關鍵幀動畫 (Animation)

一、補間動畫&#xff08;Tween Animation&#xff09;vs 關鍵幀動畫&#xff08;Keyframe Animation&#xff09;概念對比表&#xff1a;補間動畫 (Transition)關鍵幀動畫 (Animation)定義元素從初始狀態到結束狀態的過渡效果通過定義多個關鍵幀控制動畫的中間狀態觸發方式需要…

PyTorch 損失函數詳解:從理論到實踐

目錄 一、損失函數的基本概念 二、常用損失函數及實現 1. 均方誤差損失&#xff08;MSELoss&#xff09; 2. 平均絕對誤差損失&#xff08;L1Loss/MAELoss&#xff09; 3. 交叉熵損失&#xff08;CrossEntropyLoss&#xff09; 4. 二元交叉熵損失&#xff08;BCELoss&…

MinIO深度解析:從核心特性到Spring Boot實戰集成

在當今數據爆炸的時代&#xff0c;海量非結構化數據的存儲與管理成為企業級應用的關鍵挑戰。傳統文件系統在TB級數據面前捉襟見肘&#xff0c;而昂貴的云存儲服務又讓中小企業望而卻步。MinIO作為一款開源高性能對象存儲解決方案&#xff0c;正以其獨特的技術優勢成為開發者的首…

騰訊云服務上下載docker以及使用Rabbitmq的流程

執行以下命令&#xff0c;添加 Docker 軟件源并配置為騰訊云源。sudo yum-config-manager --add-repohttps://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i "s/download.docker.com/mirrors.tencentyun.com\/docker-ce/g" /etc/yu…