c语言没有值类型与引用类型的说法。但是c#人为的创造出了这个,int是值类型,所以肯定存储在栈上
是不是自动变量,要看int i=1是在怎样的上下文中。如果是在函数中则是自动变量(和c语言一样)。
如果是类的字段则不属于自动变量。

解决方案 »

  1.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。
      

  2.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
      

  3.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。值类型
    int x=5栈 堆栈
    0x0000FFFF(值5)5直接保存在地址为0x0000FFFF的内存块中===========================
    引用类型
    Class instance=new Class()
    栈 堆栈0x0000FFFF 0x0000FFFF(instance实例)在变量instance中保存的是堆栈中0x0000FFFF地址中的内存块
      

  4.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。
      

  5.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
      

  6.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。
      

  7.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
      

  8.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
    为什么?按照你的说法,结构体不能包含字符串了?
      

  9.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
    为什么?按照你的说法,结构体不能包含字符串了?http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但 string 数据类型除外,它是引用类型。
      

  10.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
    为什么?按照你的说法,结构体不能包含字符串了?http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但 string 数据类型除外,它是引用类型。
    对啊,你不是说结构体不应该包含引用类型么?我就想问问你为什么。
      

  11.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
    为什么?按照你的说法,结构体不能包含字符串了?http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但 string 数据类型除外,它是引用类型。
    对啊,你不是说结构体不应该包含引用类型么?我就想问问你为什么。你说这个表述不正确:值类型的内容存储在堆栈上分配的内存中证明下先。
      

  12.   

    int是值类型,所以肯定存储在栈上
    这种说法就是错的。请指教。。谢谢。
    比如说位于对象中的成员变量,就存储在堆上。http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx这里有一句
    值类型的内容存储在堆栈上分配的内存中
    显然是错的。对不对。应该来说表述不严谨。如果一个结构中的成员有引用类型的,这个就不应该声明成结构。
    为什么?按照你的说法,结构体不能包含字符串了?http://msdn.microsoft.com/zh-cn/library/4d43ts61(v=vs.90).aspx如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但 string 数据类型除外,它是引用类型。
    对啊,你不是说结构体不应该包含引用类型么?我就想问问你为什么。你说这个表述不正确:值类型的内容存储在堆栈上分配的内存中证明下先。
    这是你说的,应该你证明。我已经举出反例,对象的字段,如果是值类型的,仍然在堆上分配,而不是栈上。