欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言入門(mén)篇--變量的左值和右值

 更新時(shí)間:2021年08月26日 12:35:32   投稿:newname  
本篇文章是基礎(chǔ)篇,適合c語(yǔ)言剛?cè)腴T(mén)的朋友,本文對(duì)初識(shí)c語(yǔ)言的指針和指針變量做了簡(jiǎn)單的分析,幫助大家快速入門(mén)c語(yǔ)言的世界,更好的理解c語(yǔ)言

在看此塊內(nèi)容前可以先看看內(nèi)存及地址相關(guān)內(nèi)容,更容易理解。

1.普通變量

一個(gè)變量是有三個(gè)屬性:

1.變量的空間。

2.變量的內(nèi)容。

3.變量的地址。

空間即若干字節(jié),內(nèi)容即空間里放了什么,地址即變量對(duì)應(yīng)的空間地址。

#include <stdio.h>
int main()
{
	int a = 10;//定義變量a,開(kāi)辟4個(gè)字節(jié)的空間。
	a = 20;//見(jiàn)下述文字解釋
	int b = a;//見(jiàn)下述文字解釋	
	return 0;
}

一般對(duì)于一個(gè)變量而言在表達(dá)式中的位置就決定了 使用的是變量的空間還是內(nèi)容:

a = 20;//a為左值,用的是a的空間,把20放到a的空間里。
int b = a;//a為右值,用的是a的內(nèi)容,把a(bǔ)的內(nèi)容放到b里。

2.指針變量

看之前可以先看看指針變量有關(guān)內(nèi)容。

2.1初步理解

#include <stdio.h>
int main()
{
	int a = 10;
	int *p = &a;//p指向a,見(jiàn)下述文字解釋
	*p=20;//見(jiàn)下述文字解釋
	int b = *p;//見(jiàn)下述文字解釋	
	return 0;
}

int *p = &a;

//初次定義指針變量p

p為左值,用的是p的空間,此處把a(bǔ)的地址寫(xiě)入p的空間里,此時(shí)p指向a

如下圖

在這里插入圖片描述

p指向a后,*p=20;和int b = *p; 兩處的*p代表的是a的空間或內(nèi)容,

即對(duì)指針進(jìn)行解引用(*p)代表指針?biāo)赶虻淖兞浚?/p>

此時(shí)*p就是a,但具體用的是變量a的空間還是內(nèi)容取決于它是左值還是右值。

*p=20;//*p為左值,即a為左值,所以用的是a的空間,此處把20放入a的空間。

int b = *p//*p為右值,即a為右值,所以用的是a的內(nèi)容,此處把a(bǔ)的內(nèi)容放入b的空間。

#include <stdio.h>
int main()
{
	int a = 10;
	int *p = &a;//p指向a
	printf("a的地址=%p,\n", &a);
	printf("a的內(nèi)容=%d,\n", a);
	printf("p的內(nèi)容=%p,\n", p);
	printf("p指向的內(nèi)容=%d,\n", *p);//此時(shí)*p為右值,即用a的內(nèi)容
	printf("\n");
	*p = 20;
	printf("a的內(nèi)容=%d,\n", a);
	printf("\n");
	int b = *p;
	printf("a的內(nèi)容=%d,\n", a);
	printf("b的內(nèi)容=%d,\n", b);	
	return 0;
}

在這里插入圖片描述

2.2深入理解

當(dāng)p指向a后,*p就相當(dāng)于a,但指針變量p還是p,有其自己的空間和內(nèi)容。

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int *p = &a;//p指向a
	p = &b;//見(jiàn)下述文字解釋
	int *q= p;//見(jiàn)下述文字解釋
	system("pause");
	return 0;
}

p = &b;//p為左值,用p的內(nèi)容,此處把b的地址寫(xiě)入p的空間,p指向了b,不指向a了。

int *q= p;//初次定義指針變量q,q為左值,用的是q的空間;

p為右值,用的是p內(nèi)容(p經(jīng)過(guò)p = &b;語(yǔ)句后,p中的內(nèi)容為b的地址)

此時(shí)指針變量p和q中的內(nèi)容為b的地址,即指針變量p和q均指向b。

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int *p = &a;
	p = &b;
	int *q= p;
	printf("b的內(nèi)容=%d\n", b);
	printf("p指向的內(nèi)容=%d\n", *p);
	printf("q指向的內(nèi)容=%d\n", *q);
	return 0;
}

在這里插入圖片描述

以上就是C語(yǔ)言入門(mén)篇--變量的左值和右值的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言變量的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談C#中List<T>對(duì)象的深度拷貝問(wèn)題

    淺談C#中List<T>對(duì)象的深度拷貝問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談C#中List<T>對(duì)象的深度拷貝問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C++計(jì)算圓形、矩形和三角形的面積

    C++計(jì)算圓形、矩形和三角形的面積

    這篇文章介紹了C++計(jì)算圓形、矩形和三角形面積的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C++ const的各種用法詳解

    C++ const的各種用法詳解

    const名叫常量限定符,用來(lái)限定特定變量,以通知編譯器該變量是不可修改的。習(xí)慣性的使用const,可以避免在函數(shù)中對(duì)某些不應(yīng)修改的變量造成可能的改動(dòng)。本文主要談?wù)刢onst的用法,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • C語(yǔ)言之選擇分支語(yǔ)句詳解

    C語(yǔ)言之選擇分支語(yǔ)句詳解

    大家好,本篇文章主要講的是C語(yǔ)言之選擇分支語(yǔ)句詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語(yǔ)言指針教程示例詳解

    C語(yǔ)言指針教程示例詳解

    這篇文章主要為大家介紹了C語(yǔ)言指針教程的示例詳解
    2022-02-02
  • Qt實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)時(shí)鐘

    Qt實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • c語(yǔ)言實(shí)現(xiàn)的hashtable分享

    c語(yǔ)言實(shí)現(xiàn)的hashtable分享

    哈希表效率高,眾所周知。應(yīng)用廣泛,php中大部分存儲(chǔ)使用的都是hashtable,包括變量,數(shù)組…如何使用c語(yǔ)言實(shí)現(xiàn)hashtable呢,現(xiàn)提供自己的思路,如有不妥之處,敬請(qǐng)賜教
    2014-01-01
  • C++中的friend友元函數(shù)詳細(xì)解析

    C++中的friend友元函數(shù)詳細(xì)解析

    友元可以是一個(gè)函數(shù),該函數(shù)被稱(chēng)為友元函數(shù);友元也可以是一個(gè)類(lèi),該類(lèi)被稱(chēng)為友元類(lèi)。友元函數(shù)的特點(diǎn)是能夠訪問(wèn)類(lèi)中的私有成員的非成員函數(shù)。友元函數(shù)從語(yǔ)法上看,它與普通函數(shù)一樣,即在定義上和調(diào)用上與普通函數(shù)一樣
    2013-09-09
  • C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程

    C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程

    這篇文章主要介紹了C語(yǔ)言壓縮文件和用MD5算法校驗(yàn)文件完整性的實(shí)例教程,這里演示了Windows下將文件壓縮為7z格式以及MD5檢驗(yàn)文件和密碼的方法,需要的朋友可以參考下
    2016-04-04
  • C++獲取系統(tǒng)時(shí)間的三種方法

    C++獲取系統(tǒng)時(shí)間的三種方法

    在?C++?編程中,獲取系統(tǒng)時(shí)間是一項(xiàng)常見(jiàn)任務(wù),無(wú)論是記錄日志、計(jì)算程序運(yùn)行時(shí)間,還是實(shí)現(xiàn)計(jì)時(shí)功能,都需要獲取當(dāng)前的系統(tǒng)時(shí)間,本文將介紹幾種在?C++?中獲取系統(tǒng)時(shí)間的方法,并提供相應(yīng)的代碼示例,需要的朋友可以參考下
    2024-09-09

最新評(píng)論