C語言零基礎(chǔ)精通變量與常量
1.變量和常量的概念
生活中的一些數(shù)據(jù)有些數(shù)據(jù)不能變:血型、性別、圓周率。有些數(shù)據(jù)一定可變:工資、年齡、體重。我們用C語言怎么描述:常量-不能改變的量 變量-能被改變的量
2.變量的類型
- 創(chuàng)建整形變量用到的數(shù)據(jù)類型是int
- 創(chuàng)建字符型變量用到的數(shù)據(jù)類型是char
- 創(chuàng)建浮點(diǎn)型變量用到的數(shù)據(jù)類型是float或者是double
- 創(chuàng)建哪種變量就要用到哪種數(shù)據(jù)類型
- 數(shù)據(jù)類型是創(chuàng)建變量用的
3.變量的分類
變量分為局部變量和全局變量
舉個例子:
#include<stdio.h> int a = 100; int main() { int a = 10; printf("%d\n," a); return 0; }
- 整型變量用**%d**打印
- 字符型變量用**%c**打印
- 浮點(diǎn)型數(shù)據(jù)float類型的變量用**%f**打印
- 浮點(diǎn)型數(shù)據(jù)double類型的變量用**%lf**打印int是類型,a是變量的名字,=叫賦值,=后面的叫數(shù)值
- int (類型)
- a (變量的名字)
- = (賦值)
- 10 (數(shù)值)
- 大括號內(nèi)部的變量叫局部變量,上面局部變量是a
- 大括號外部的變量叫全局變量,上面全局變量a
代碼的輸出結(jié)果是10
我們可以看到全局變量和局部變量的名稱相同,而發(fā)生這種情況的時候,我們局部變量優(yōu)先,所以,代碼會輸出10。
雖然我們可以這樣定義兩個名稱相同的變量,但是不建議這樣寫。
4.變量的使用
寫一個代碼求2個整數(shù)的和:
#include<stdio.h> int main() { int a = 0; int b = 0; int sum = 0; scanf("%d %d", &a, &b); sum = a + b; printf("sum = %d\n", sum); return 0; }
scanf是輸入函數(shù)
%d代表輸入1個整型
兩個%d代表輸入2個整型
&a &b代表輸入的數(shù)據(jù)
&a放到第一個%d里,&b放到第二個%d里
sum代表a與b的和
scanf函數(shù)前面指的是格式,后面指的是我要把數(shù)據(jù)存放到哪里去
5.變量的作用域和生命周期
⑴作用域:這個變量可以在哪里使用,哪里就是它的作用域。
①
#include<stdio.h> int main() { printf("hehe\n"); int a=10; printf("a = %d", a);//代碼作用域 return 0; }
②
#include<stdio.h> int main() { printf("hehe\n"); printf("a=%d", a); { int a = 10; } return 0; }
在大括號里面定義的變量a的作用域是它的自己所在的大括號。
大括號里的變量只能在大括號里使用,上面代碼的輸出函數(shù)在大括號外,此代碼無法運(yùn)行。
③正確代碼如下
#include<stdio.h> int main() { printf("hehe\n"); { int a=10; //代碼的作用域 printf("a=%d", a); } return 0; }
局部變量的作用域就是變量所在的局部范圍
全局變量的作用域是整個工程
執(zhí)行性的代碼必須放在大括號里面
變量的創(chuàng)建可以放在大括號外面
⑵變量的生命周期:
變量的創(chuàng)建和銷毀之間的時間段
局部變量的生命周期:進(jìn)入局部范圍生命開始,出局部范圍生命結(jié)束
全局變量的生命周期:程序的生命周期
6.常量的分類
C語言中的常量:
- 字面常量
- const 修飾的常量 -
- #define定義的標(biāo)識符常量 -
- 枚舉常量
⑴字面常量
#include<stdio.h> int main() { 3.14; //字面常量 10; //字面常量 'a'; //是字面常量,也是字符常量 'abcdefg'; //字面常量,也是字符串常量 return 0; }
用單引號括起來的是字符常量,用雙引號括起來的是字符串常量
⑵const 修飾的常量
#include<stdio.h> int main() { const int num = 10;//變量 num = 20; printf("num = %d\n",num); //輸出為20 int arr[10] = {0};//10個元素 const int n = 10; int arr[n] = {0}; //錯誤 retuen 0; }
當(dāng)不想改變〃num〃變量的值的時候加上const。這個時候代碼會報錯,說明有了const的修飾我們無法改變num的值了。
正確代碼應(yīng)將這一行代碼刪除。這個時候num叫做常變量,具有常屬性(不能被改變的屬性)。代碼報錯,經(jīng)過const修飾過的n是常變量但本質(zhì)上是一個變量。
因?yàn)榇a中的方塊里要是一個常量所以代碼會報錯。正確代碼是變?yōu)橐粋€常量,例如10,20,‘a’。
⑶#define定義的標(biāo)識符常量
#define MAX 10000 int main() { MAX = 20000; //錯誤 int n = MAX; printf("n = %f\n",n);//輸出10000 return 0; }
MAX就是define定義的標(biāo)識符常量,因?yàn)椴荒芨淖僊AX的值,所以叫常量。#在大括號里面定義的也行
錯誤示范:代碼報錯,因?yàn)镸AX是不能改的正確寫法是將20000改為10000
⑷枚舉常量:一般用于可以一一列舉的常量
#include<stdio.h> int main() { enum Sex s = MALE; return 0; } ``````c //性別enum Sex//枚舉類型 { //這種枚舉類型的變量的未來可能取值 //枚舉常量 MALE, FEMALE, SECRET }
上面三個值就是enum Sex這種類型的枚舉變量的未來的可能取值
到此這篇關(guān)于C語言零基礎(chǔ)精通變量與常量的文章就介紹到這了,更多相關(guān)C語言變量與常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++如何調(diào)用opencv完成運(yùn)動目標(biāo)捕捉詳解
OpenCV作為機(jī)器視覺開源庫,使用起來非常不錯,這篇文章主要給大家介紹了關(guān)于C++如何調(diào)用opencv完成運(yùn)動目標(biāo)捕捉的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05C++應(yīng)用Eigen庫對應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題
這篇文章主要介紹了C++應(yīng)用Eigen庫對應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12C語言詳細(xì)分析宏定義與預(yù)處理命令的應(yīng)用
宏定義是用宏名來表示一個字符串,在宏展開時又以該字符串取代宏名,這只是一種簡單的替換。字符串中可以含任何字符,可以是常數(shù),也可以是表達(dá)式,預(yù)處理程序?qū)λ蛔魅魏螜z查,如有錯誤,只能在編譯已被宏展開后的源程序時發(fā)現(xiàn)2022-07-07C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)
所謂的“復(fù)制控制”即通過這三個成員函數(shù)控制對象復(fù)制的過程,本文主要介紹了C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11vscode?采用C++17版本進(jìn)行編譯的實(shí)現(xiàn)
本文主要介紹了vscode?采用C++17版本進(jìn)行編譯,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01