C中的变量和关键字-IDC帮帮忙

可变简单来说是具有分配给它的一些存储器的存储位置。所以基本上是一个用于存储某种形式数据的变量。不同类型的变量需要不同数量的内存,并且可以应用一些特定的操作。

变量声明:
典型的变量声明具有以下形式:

  type variable_name;
    或多个变量:
  type variable1_name,variable2_name,variable3_name;

变量名可以包含字母(大写和小写),数字和下划线'_'字符。但是,名称不能以数字开头。

差异b / w变量声明和定义
变量声明是指变量首次使用之前首先声明或引入的部分。变量定义是为变量分配内存位置和值的部分。大多数情况下,变量声明和定义是一起完成的

有关更好的说明,请参阅以下C程序:

#include <stdio.h>
int main()
{
    // declaration and definition of variable 'a123'
    char a123 = 'a';
    // This is also both declaration and definition as 'b' is allocated
    // memory and assigned some garbage value.  
    float b; 
    // multiple declarations and definitions
    int _c, _d45, e;
    // Let us print a variable
    printf("%c \n", a123);
    return 0;
}

输出:

一个

是否可以单独声明和定义?
在外部变量和函数的情况下是可能的。参见问题1 此了解更多详情。

关键字是C中的特定保留字,每个字都具有与之关联的特定特征。几乎所有帮助我们使用C语言功能的单词都包含在关键字列表中。所以你可以想象关键字列表不会很小!

C中共有32个关键字:

   自动中断案例char const继续
   默认做双精度枚举extern
   如果int long,则浮动goto
   注册返回短签名sizeof static
   struct switch typedef union unsigned void
   不稳定的

大多数这些关键字已经在C语言的各个子部分中讨论过,如数据类型,存储类,控制语句,函数等。

让我们讨论一些允许我们使用C的基本功能的其他关键字:

const:const可用于声明常量变量。常量变量是在初始化时不能改变其值的变量。或者换句话说,分配给它们的值是不可修改的。
句法:

const data_type var_name = var_value;
注意:常量变量需要在声明过程中强制初始化。const关键字也用于指针。请参阅C中的const限定符以了解相同的内容。

EXTERN:extern只是告诉我们变量是在别处定义的,而不是在使用它的同一个块中。基本上,该值在不同的块中分配给它,并且这也可以在不同的块中被覆盖/改变。因此,外部变量只不过是一个全局变量,它是用一个合法值初始化的,在这里它被声明,以便在其他地方使用。它可以在任何函数/块中访问。另外,正常的全局变量也可以通过在任何函数/块中将'extern'关键字放在其声明/定义之前来制作extern。这基本上表示我们没有初始化一个新变量,而是仅使用/访问全局变量。使用extern变量的主要目的是可以在两个不同的文件之间访问它们,这两个文件是大型程序的一部分。
句法:

extern data_type var_name = var_value;
static:static关键字用于声明在用C语言编写程序时常用的静态变量。静态变量具有即使在超出其范围之后也能保留其值的属性!因此,静态变量保留了它们在其范围内的最后使用价值。所以我们可以说它们只被初始化一次并存在直到程序终止。因此,没有分配新的内存,因为它们没有被重新声明。它们的范围是它们所定义的函数的局部范围。可以在程序中的任何位置访问全局静态变量。默认情况下,编译器为它们分配值0。
句法:

static data_type var_name = var_value;
void:void仅是特殊数据类型。但是什么使它如此特别?void,因为它字面意思是空数据类型。这意味着它没有任何东西或它没有任何价值。例如,当它用作函数的返回数据类型时,它只表示函数不返回任何值。类似地,当它被添加到函数标题时,它表示该函数不带参数。
注意:void也有很多指针使用。请参阅C中的void指针以了解相同内容。

typedef:typedef用于为已存在的甚至是自定义数据类型(如结构)提供新名称。它有时非常方便,例如在您定义的结构名称很长或者您只需要对现有数据类型进行简写表示的情况下。

让我们实现上面讨论过的关键字。请参阅以下代码,该代码是演示这些关键字的工作示例:

#include <stdio.h>
// declaring and initializing an extern variable
extern int x = 9;
// declaring and initializing a global variable
// simply int z; would have initialized z with
// the default value of a global variable which is 0
int z=10;
// using typedef to give a short name to long long int
// very convenient to use now due to the short name
typedef long long int LL;
// function which prints square of a no. and which has void as its
// return data type
void calSquare(int arg)
{
    printf("The square of %d is %d\n",arg,arg*arg);
}
// Here void means function main takes no parameters
int main(void)
{
    // declaring a constant variable, its value cannot be modified
    const int a = 32;
    // declaring a  char variable
    char b = 'G';
    // telling the compiler that the variable z is an extern variable
    // and has been defined elsewhere (above the main function)
    extern int z;
    LL c = 1000000;
    printf("Hello World!\n");
    // printing the above variables
    printf("This is the value of the constant variable 'a': %d\n",a);
    printf("'b' is a char variable. Its value is %c\n",b);
    printf("'c' is a long long int variable. Its value is %lld\n",c);
    printf("These are the values of the extern variables 'x' and 'z'"
    " respectively: %d and %d\n",x,z);
    // value of extern variable x modified
    x=2;
    // value of extern variable z modified
    z=5;
    // printing the modified values of extern variables 'x' and 'z'
    printf("These are the modified values of the extern variables"
    " 'x' and 'z' respectively: %d and %d\n",x,z);
    // using a static variable
    printf("The value of static variable 'y' is NOT initialized to 5 after the "
            "first iteration! See for yourself :)\n");
    while (x > 0)
    {
        static int y = 5;
        y++;
        // printing value at each iteration
        printf("The value of y is %d\n",y);
        x--;
    }
    // print square of 5
    calSquare(5);
    printf("Bye! See you soon. :)\n");
    return 0;
}

输出:

你好,世界
这是常量变量'a'的值:32
'b'是char变量。它的价值是G.
'c'是一个long long int变量。它的价值是1000000
这些是外部变量'x'和'z'的值:9和10
这些是外部变量'x'和'z'的修改值:2和5
在第一次迭代后,静态变量'y'的值未初始化为5!你自己看 :)
y的值是6
y的值是7
5的平方是25
再见!再见。:)