• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

c语言 搞代码 4年前 (2022-01-06) 23次浏览 已收录 0个评论
文章目录[隐藏]

本篇文章是基础篇,适合c语言刚入门的朋友,本文对初识c语言的指针和指针变量做了简单的分析,帮助大家快速入门c语言的世界,更好的理解c语言

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

1.普通变量

一个变量是有三个属性:

1.变量的空间。

2.变量的内容。

3.变量的地址。

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

 #include  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  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  int main() { int a = 10; int *p = &a;//p指向a printf("a的地址=%p,\n", <em style="color:transparent">来源gao.dai.ma.com搞@代*码网</em>&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  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  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语言变量的资料请关注gaodaima搞代码网其它相关文章!

以上就是C语言入门篇–变量的左值和右值的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C语言入门篇–变量的左值和右值

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址