iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言入门篇--变量的左值和右值
  • 366
分享到

C语言入门篇--变量的左值和右值

2024-04-02 19:04:59 366人浏览 八月长安
摘要

目录1.普通变量2.指针变量2.1初步理解2.2深入理解在看此块内容前可以先看看内存及地址相关内容,更容易理解。 1.普通变量 一个变量是有三个属性: 1.变量的空间。 2.变量的内

在看此块内容前可以先看看内存及地址相关内容,更容易理解。

1.普通变量

一个变量是有三个属性:

1.变量的空间。

2.变量的内容。

3.变量的地址。

空间即若干字节,内容即空间里放了什么,地址即变量对应的空间地址。


#include <stdio.h>
int main()
{
	int a = 10;//定义变量a,开辟4个字节的空间。
	a = 20;//见下述文字解释
	int b = a;//见下述文字解释	
	return 0;
}

一般对于一个变量而言在表达式中的位置就决定了 使用的是变量的空间还是内容:

a = 20;//a为左值,用的是a的空间,把20放到a的空间里。
int b = a;//a为右值,用的是a的内容,把a的内容放到b里。

2.指针变量

看之前可以先看看指针变量有关内容。

2.1初步理解


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

int *p = &a;

//初次定义指针变量p

p为左值,用的是p的空间,此处把a的地址写入p的空间里,此时p指向a

如下图

在这里插入图片描述

p指向a后,*p=20;和int b = *p; 两处的*p代表的是a的空间或内容,

即对指针进行解引用(*p)代表指针所指向的变量,

此时*p就是a,但具体用的是变量a的空间还是内容取决于它是左值还是右值。

*p=20;//*p为左值,即a为左值,所以用的是a的空间,此处把20放入a的空间。

int b = *p//*p为右值,即a为右值,所以用的是a的内容,此处把a的内容放入b的空间。


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

在这里插入图片描述

2.2深入理解

当p指向a后,*p就相当于a,但指针变量p还是p,有其自己的空间和内容。


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

p = &b;//p为左值,用p的内容,此处把b的地址写入p的空间,p指向了b,不指向a了。

int *q= p;//初次定义指针变量q,q为左值,用的是q的空间;

p为右值,用的是p内容(p经过p = &b;语句后,p中的内容为b的地址)

此时指针变量p和q中的内容为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的内容=%d\n", b);
	printf("p指向的内容=%d\n", *p);
	printf("q指向的内容=%d\n", *q);
	return 0;
}

在这里插入图片描述

以上就是C语言入门篇--变量的左值和右值的详细内容,更多关于C语言变量的资料请关注编程网其它相关文章!

--结束END--

本文标题: C语言入门篇--变量的左值和右值

本文链接: https://www.lsjlt.com/news/133667.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言入门篇--变量的左值和右值
    目录1.普通变量2.指针变量2.1初步理解2.2深入理解在看此块内容前可以先看看内存及地址相关内容,更容易理解。 1.普通变量 一个变量是有三个属性: 1.变量的空间。 2.变量的内...
    99+
    2024-04-02
  • C语言入门篇--变量[定义,初始化赋值,外部声明]
    1.变量 变量即变化的量。 C语言中用 常量 来表示不变的值,用 变量 表示变化的值。 eg:输出26个字母 #include <stdio.h> int main(...
    99+
    2024-04-02
  • 一篇文章弄懂C++左值引用和右值引用
    目录1. 左值和右值 2. 左值引用 3. 右值引用 3.1 出现 3.2 概念 3.3 应用 3.3.1 右值引用绑定到左值上 3.3.2 std::move()本质 3.3.3 ...
    99+
    2024-04-02
  • 详解C++中的左值,纯右值和将亡值
    目录引入一.表达式二.值类别三.左值四.纯右值五.将亡值六.注意引入 C++中本身是存在左值,右值的概念,但是在C11中又出现了左值,纯右值,将亡值得概念;这里我们主要介绍这些值的概...
    99+
    2024-04-02
  • C++中左值和右值的区别详解
    目录左值右值定义:特性左值引用, 右值引用总结左值右值定义: 左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式). ...
    99+
    2024-04-02
  • C语言入门篇--初识指针和指针变量
    1.指针 指针就是地址(即一个数据)。 2.指针变量 2.1概念 (1)指针变量是变量,是变量在内存中就会开辟空间,会有自己对应的的地址,有自己的变量大小。 (2)指针变量里放的内容...
    99+
    2024-04-02
  • C语言中什么是左值引用与右值引用
    这篇文章主要介绍“C语言中什么是左值引用与右值引用”,在日常操作中,相信很多人在C语言中什么是左值引用与右值引用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中什么是左值引用与右值引用”的疑惑有所帮助!...
    99+
    2023-06-16
  • C++中左值和右值的区别是什么
    今天给大家介绍一下C++中左值和右值的区别是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。左值右值定义:左值指的是既能够出现在等号左边也能出现在等号右边的...
    99+
    2023-06-29
  • C++ 函数左值和右值参数传递的性能比较
    左值和右值参数传递的性能差异左值参数传递存在副本开销,降低性能,尤其是对于大型对象。右值参数传递避免副本开销,提升性能,尤适用于临时对象或字面量。 C++ 函数左值和右值参数传递的性能...
    99+
    2024-04-21
    左值 右值参数 c++
  • R语言变量赋值深入讲解
    变量可以使用向左,向右且等于操作符来分配值。可以使用 print() 或 cat() 函数打印变量的值。cat() 函数将多个项目并成连续并打印输出。 # Assignment ...
    99+
    2024-04-02
  • 快速入门Golang变量声明和赋值的基本语法
    快速入门Golang变量声明和赋值的基本语法概述:Golang是一种静态类型、编译型的编程语言,具有优秀的性能和开发效率。在Golang中,变量声明和赋值是我们编写程序时经常使用的基本操作之一。本文将带你快速入门Golang变量声明和赋值的...
    99+
    2023-12-23
    Golang 变量声明 赋值
  • C语言的各类变量和零值的比较详解
    目录1.波尔变量和零值比较2.整形变量和零进行比较3.浮点变量和零值比较4.指针和零值比较总结 1.波尔变量和零值比较 在C语言中本来是不存在bool类型的,但在C99标准中加入了b...
    99+
    2024-04-02
  • C语言怎么交换两个变量的值
    在C语言中,可以使用一个临时变量来交换两个变量的值。具体步骤如下:1. 声明一个临时变量temp。2. 将第一个变量的值赋给temp...
    99+
    2023-08-18
    C语言
  • c语言字符型变量如何赋值
    C语言中的字符型变量可以通过以下几种方式进行赋值:1. 直接赋值:可以将一个字符赋值给字符型变量。例如:```cchar ch = ...
    99+
    2023-08-18
    c语言
  • C++ 函数左侧值引用和右侧值引用参数的区别
    c++++中左侧和右侧值引用参数的不同之处如下:左侧值引用 (&) 指向已有对象,用于修改其状态。右侧值引用 (&&) 指向临时对象,用于获取或传递其数据。 C...
    99+
    2024-04-19
    参数 函数 引用 c++
  • C语言入门之浅谈数据类型和变量常量
    目录1.变量的作用域:2.变量的生命周期:1.字面常量,如:100,‘v’;2.define宏定义的标识符常量3.const修饰的常变量4.枚举常量总结首先我...
    99+
    2024-04-02
  • R语言变量赋值的示例
    小编给大家分享一下R语言变量赋值的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!变量可以使用向左,向右且等于操作符来分配值。可以使用 print() 或 cat() 函数打印变量的值。cat() 函数将多个项目并成连续...
    99+
    2023-06-14
  • C语言入门篇--局部全局变量的作用域及生命周期
    目录1.变量的分类1.1 局部变量1.2 全局变量1.3 知识点1.3.1 就近原则1.3.2 访问规则1.3.3 有效范围2.变量的使用3.变量的作用域和生命周期3.1 作用域3....
    99+
    2024-04-02
  • C语言中各类变量和零值比较的示例分析
    这篇文章给大家分享的是有关C语言中各类变量和零值比较的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.波尔变量和零值比较在C语言中本来是不存在bool类型的,但在C99标准中加入了bool类型。在C99...
    99+
    2023-06-21
  • c语言指针变量赋值的方法是什么
    在C语言中,可以使用赋值操作符(=)将一个指针变量赋值给另一个指针变量。例如: int num = 10; int *ptr1 = ...
    99+
    2024-04-09
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作