C語(yǔ)言零基礎(chǔ)精通變量與常量
1.變量和常量的概念
生活中的一些數(shù)據(jù)有些數(shù)據(jù)不能變:血型、性別、圓周率。有些數(shù)據(jù)一定可變:工資、年齡、體重。我們用C語(yǔ)言怎么描述:常量-不能改變的量 變量-能被改變的量
2.變量的類(lèi)型
- 創(chuàng)建整形變量用到的數(shù)據(jù)類(lèi)型是int
- 創(chuàng)建字符型變量用到的數(shù)據(jù)類(lèi)型是char
- 創(chuàng)建浮點(diǎn)型變量用到的數(shù)據(jù)類(lèi)型是float或者是double
- 創(chuàng)建哪種變量就要用到哪種數(shù)據(jù)類(lèi)型
- 數(shù)據(jù)類(lèi)型是創(chuàng)建變量用的
3.變量的分類(lèi)
變量分為局部變量和全局變量
舉個(gè)例子:
#include<stdio.h>
int a = 100;
int main()
{
int a = 10;
printf("%d\n," a);
return 0;
}
- 整型變量用**%d**打印
- 字符型變量用**%c**打印
- 浮點(diǎn)型數(shù)據(jù)float類(lèi)型的變量用**%f**打印
- 浮點(diǎn)型數(shù)據(jù)double類(lèi)型的變量用**%lf**打印int是類(lèi)型,a是變量的名字,=叫賦值,=后面的叫數(shù)值
- int (類(lèi)型)
- a (變量的名字)
- = (賦值)
- 10 (數(shù)值)
- 大括號(hào)內(nèi)部的變量叫局部變量,上面局部變量是a
- 大括號(hào)外部的變量叫全局變量,上面全局變量a
代碼的輸出結(jié)果是10
我們可以看到全局變量和局部變量的名稱(chēng)相同,而發(fā)生這種情況的時(shí)候,我們局部變量?jī)?yōu)先,所以,代碼會(huì)輸出10。
雖然我們可以這樣定義兩個(gè)名稱(chēng)相同的變量,但是不建議這樣寫(xiě)。
4.變量的使用
寫(xiě)一個(gè)代碼求2個(gè)整數(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個(gè)整型
兩個(gè)%d代表輸入2個(gè)整型
&a &b代表輸入的數(shù)據(jù)
&a放到第一個(gè)%d里,&b放到第二個(gè)%d里
sum代表a與b的和
scanf函數(shù)前面指的是格式,后面指的是我要把數(shù)據(jù)存放到哪里去
5.變量的作用域和生命周期
⑴作用域:這個(gè)變量可以在哪里使用,哪里就是它的作用域。
①
#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;
}
在大括號(hào)里面定義的變量a的作用域是它的自己所在的大括號(hào)。
大括號(hào)里的變量只能在大括號(hào)里使用,上面代碼的輸出函數(shù)在大括號(hào)外,此代碼無(wú)法運(yùn)行。
③正確代碼如下
#include<stdio.h>
int main()
{
printf("hehe\n");
{
int a=10; //代碼的作用域
printf("a=%d", a);
}
return 0;
}
局部變量的作用域就是變量所在的局部范圍
全局變量的作用域是整個(gè)工程
執(zhí)行性的代碼必須放在大括號(hào)里面
變量的創(chuàng)建可以放在大括號(hào)外面
⑵變量的生命周期:
變量的創(chuàng)建和銷(xiāo)毀之間的時(shí)間段
局部變量的生命周期:進(jìn)入局部范圍生命開(kāi)始,出局部范圍生命結(jié)束
全局變量的生命周期:程序的生命周期
6.常量的分類(lèi)
C語(yǔ)言中的常量:
- 字面常量
- const 修飾的常量 -
- #define定義的標(biāo)識(shí)符常量 -
- 枚舉常量
⑴字面常量
#include<stdio.h>
int main()
{
3.14; //字面常量
10; //字面常量
'a'; //是字面常量,也是字符常量
'abcdefg'; //字面常量,也是字符串常量
return 0;
}
用單引號(hào)括起來(lái)的是字符常量,用雙引號(hào)括起來(lái)的是字符串常量
⑵const 修飾的常量
#include<stdio.h>
int main()
{
const int num = 10;//變量
num = 20;
printf("num = %d\n",num); //輸出為20
int arr[10] = {0};//10個(gè)元素
const int n = 10;
int arr[n] = {0}; //錯(cuò)誤
retuen 0;
}
當(dāng)不想改變〃num〃變量的值的時(shí)候加上const。這個(gè)時(shí)候代碼會(huì)報(bào)錯(cuò),說(shuō)明有了const的修飾我們無(wú)法改變num的值了。
正確代碼應(yīng)將這一行代碼刪除。這個(gè)時(shí)候num叫做常變量,具有常屬性(不能被改變的屬性)。代碼報(bào)錯(cuò),經(jīng)過(guò)const修飾過(guò)的n是常變量但本質(zhì)上是一個(gè)變量。
因?yàn)榇a中的方塊里要是一個(gè)常量所以代碼會(huì)報(bào)錯(cuò)。正確代碼是變?yōu)橐粋€(gè)常量,例如10,20,‘a’。
⑶#define定義的標(biāo)識(shí)符常量
#define MAX 10000
int main()
{
MAX = 20000; //錯(cuò)誤
int n = MAX;
printf("n = %f\n",n);//輸出10000
return 0;
}MAX就是define定義的標(biāo)識(shí)符常量,因?yàn)椴荒芨淖僊AX的值,所以叫常量。#在大括號(hào)里面定義的也行
錯(cuò)誤示范:代碼報(bào)錯(cuò),因?yàn)镸AX是不能改的正確寫(xiě)法是將20000改為10000
⑷枚舉常量:一般用于可以一一列舉的常量
#include<stdio.h>
int main()
{
enum Sex s = MALE;
return 0;
}
``````c
//性別enum Sex//枚舉類(lèi)型
{ //這種枚舉類(lèi)型的變量的未來(lái)可能取值 //枚舉常量
MALE,
FEMALE,
SECRET
}上面三個(gè)值就是enum Sex這種類(lèi)型的枚舉變量的未來(lái)的可能取值
到此這篇關(guān)于C語(yǔ)言零基礎(chǔ)精通變量與常量的文章就介紹到這了,更多相關(guān)C語(yǔ)言變量與常量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
AVX2指令集優(yōu)化浮點(diǎn)數(shù)組求和算法
這篇文章主要為大家介紹了AVX2指令集優(yōu)化浮點(diǎn)數(shù)組求和算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
C++?OpenCV實(shí)現(xiàn)boxfilter方框?yàn)V波的方法詳解
box?filter的作用很簡(jiǎn)單,即對(duì)局部區(qū)域求平均,并把值賦給某個(gè)點(diǎn),一般我們賦給區(qū)域中心。本文將用C++實(shí)現(xiàn)boxfilter方框?yàn)V波,需要的可以了解一下2022-10-10

