变量在内存中...
来源:7-1 指针基础【摸清本质带你爱上指针】

慕先生5272158
2023-01-29
C语言确实太有意思.....
int a;
a = 9;
我的理解是这样的
第1行,表示定义了一个变量a。对于编译器来说,编译器会为a分配一个地址,这个地址代表存储空间,空间中存储的数据的类型是int。
第2行,表示赋值,把9赋值给变量a。即程序运行时,通过变量a的地址找到存储空间,然后向存储空间中写入9。
问题1:我网上找到了变量在栈中的存放(只找到了数组),是这样的么?
问题2:如果是这样,老师能画个指针变量在内存中的模型帮助理解下么?int* p = &a; p 这个指针变量会有一格地址,然后它存放的内容是a的地址?
问题3:老师是专家,想问下,语言是相通的,如此类推,对于java中的引用类型String s = new String();s这个变量在栈中有地址,他存放的内容是String这个对象在堆中的地址?
问题4:变量在内存中除了有地址、存放空间,还有什么其他属性么?我如果要详细了解,应该问度娘啥?
谢谢老师!
写回答
5回答
-
bennyhuo
2023-01-29
4. C语言当中,变量在内存当中,会对应一块儿内存,但内存里只存他的值,不会存变量的类型。00 -
bennyhuo
2023-01-29
3. Java的情况有点儿特殊,取决于虚拟机的实现,不能对内存做假定。00 -
bennyhuo
2023-01-29
2. 是的。00 -
bennyhuo
2023-01-29
2. 是的。00 -
bennyhuo
2023-01-29
1. 是在栈中,具体取决于编译器。00
相似问题