变量定义如何降重

变量定义如何降重

问:什么是变量定义和变量声明
  1. 答:变量定义:定义合法类型、长度的值给变量,即赋值
    变量声明:就是告诉编译器在程序中使用了哪些变量,及这些变量的数据类型以及变量的长度,然后为变量分配存储空间。
  2. 答:变量使用之前要声明。声明变量实际上就是给他分配一个存储空间。比如,int a,a未必要赋值
    变量定义就是给变量赋值了。根据程序语言的规定,定义一个合法的值给变量。
  3. 答:声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。
    文库对变量定义和变量声明的解释:
问:关于变量定义的问题
  1. 答:得到的值是12而不是23
    (因为变量名为a,不是b)
    那么系统是怎么知道我要输出的12 而不是23
    (依靠变量名来判断)
    对于字符a 和b是否又有一个存储地址呢?
    (变量名不同当然不在一个存储地址,即使变量名相同,而且又重新定义了,但在不同的定义域里,那么他们的存储地址也是不一样的)
    变量名是不存储的,存储的是变量的值,变量名是指向变量地址的。
    比如int a,就是定义一个整形数据,并且给出了a所占的内存空间,但它的初始值可能不确定(c语言中好像是0,其他语言可能是任意数)。
  2. 答:首先,cout<<a;这个语句就是要输出a的值,而不是b的值。其次 int a=12,b=23;这句话就是定义了一个 int类型的变量名a,b,变量名其实就是对应一个名字,代表了一个地址。引用的时候就引用变量的名字即a,b,即可。呵呵,你是这个意思吧...
问:什么是变量,自变量和因变量是如何定义的
  1. 答:自变量就是x的取值,因变量就是因为x的变化才变化,也就是y的取值,可以这么想
问:如何定义变量
  1. 答:变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。
    局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。
    局部变量
    在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。
    自动变量auto
    函数中的局部变量,其缺省格式是自动变量类型。例如,在函数体中int b, c=3; 和auto int b, c=3; 是等价的。
    自动变量是动态分配存储空间的,函数结束后就释放。自动变量如不赋初值,则它的值是一个不确定的值。
问:在C语言中用const定义的变量如何修改
  1. 答:首先是处理时间上的不同,#define宏是预处理命令,是在编译前的预处理阶段完成的。而const是在编译阶段完成的。然后是效果上的不同,const会进行严格的类型检查,而#define宏则只是简单的替换,不会进行类型检查。再就是功能上的不同,const一般用来定义文字常量,其功能相对单薄,而#define由于其简便性,可以在许多方面达到意想不到的效果,比如mfc中用到了许多宏完成了复杂的rtti机制,序列化机制,等等。而这些都是const无法达到的效果的。另外#define宏用得比较多的地方就是防止头文件的重复包含了。这一点也是const无法做到的。
  2. 答:指针
    两种修改方法
    1: int const *pci
    指针指向的对象被const成常量,指针本身是整型,可以修改,但不能修改指针指向对象的值。
    2: int * const pci
    第二种则是这个指针本身被const成常量,指针不能修改,可修改指向的整型。
    参考书籍《C和指针》,最好三剑客的书都敲一遍,然后你就悟了...
  3. 答:const定义的是常量,运行中不能改,再间接的方式也不能改,这不符合规定。
    想改的话就不要定义成const常量
    “我指的是如何用一种间接的方式使得用const定义的变量在程序运行中可以被修改”,不知道你用的是何种间接的方式,贴出来分离一下??
变量定义如何降重
下载Doc文档

猜你喜欢