c语言基础,给变量赋值int c=10;书上说是把10存放在变量c的内存地址中(注意他强调的是地址)我的分析如下

Python08

c语言基础,给变量赋值int c=10;书上说是把10存放在变量c的内存地址中(注意他强调的是地址)我的分析如下,第1张

写代码才最重要

当然不是说基础不重要,只是你问的这个问题实在是意义不大,这不是在分析概念,而是咬文嚼字了。像int a = 10这种,就是个变量,变量的值是10。不用想什么指针、内存、地址的问题。等到你学int *p = &a再讨论这些不迟。

另外,地址是地址,指针是指针,指针的值是地址

从左至右计算(a*=3)和(a+=2)如下:

c=(a*=3)+(a+=2)→c=(a=a*3)+(a=a+2)→c=(a=1*3)+(a=3+2)→c=(a==5)+(a==5)→c=(5)+(5)=10。这是因为先计算a*=3使a==3,再计算a+=2使a==5——但只有一个变量a,所以原来的a==3被修改成了a==5,最后计算c=(a)+(a)时得到了5+5。为了验证,你可以把c=(a*=3)+(a+=2)改写成c=(a+=2)+(a*=3),按以上分析结果自然应该是18。本人之见,这应该不是C的正宗规则,应该是bug,且可能不同的编译器会有不同的处理过程。供参考。

就一个递归调用呀。

就是返回的是c的值 一直递归到最里层 c = 10也就是age(0)返回值是10 然后是age(0)+2 返回12 就是age(1)的返回值以此类推

age 5

c = age 4 +2

c = age 3 +2

c = age 2 +2

c = age 1 +2

c= 10

然后再返回c的值 由下向上累加

c = 10

c = 12

c = 14

c = 16

c = 18

c = 20