龙空技术网

C语言变量和赋值详解

编程补习班 219

前言:

现时兄弟们对“c语言不同类型赋值”大体比较注意,咱们都想要学习一些“c语言不同类型赋值”的相关内容。那么小编也在网摘上网罗了一些关于“c语言不同类型赋值””的相关文章,希望我们能喜欢,同学们一起来学习一下吧!

大多数程序在产生输出之前往往需要执行一系列的计算,因此需要在程序执行过程中有一种临时存储数据的方法。和大多数编程语言一样, C 语言中的这类存储单元被称为变量(variable)。

变量类型

每一个变量都必须有一个类型(type)。类型用来说明变量所存储的数据的种类。 C 语言拥有广泛多样的类型。

类型会影响变量的存储方式以及允许对变量进行的操作,所以选择合适的类型是非常关键的。例如,数值型变量的类型决定了变量所能存储的最大值和最小值,同时也决定了是否允许在小数点后出现数字。

在 C 编程语言中,int(integer 的简写)型变量可以存储整数,如 0、1、345 或 -2345。但是,整数的取值范围是受限制的。最大的整数通常是 2147483647。

float(即 floating-point 的简写)型变量可以存储比 int 型变量大得多的数值。而且,float 型变量可以存储带小数位的数,如 379.125。但 float 型变量也有一些缺陷。进行算术运算时 float 型变量通常比 int 型变量慢;更重要的是, float 型变量所存储的数值往往只是实际数值的一个近似值。如果在一个 float 型变量中存储 0.1,以后可能会发现变量的值为 0.09999999999999987,这是舍入造成的误差。

变量语法

data_type variable_name = value;    // defining single variable            ordata_type variable_name1, variable_name2;    // defining multiple variable

其中,

type 表示变量的数据类型,可以是整型、浮点型、字符型、指针等,也可以是用户自定义的对象variable_name 用户定义的变量名字value 为变量赋值的值

例如,

int age;float salary;char grade;int *ptr;int i, j, k;

C是一种强类型语言,因此在使用变量之前必须指定所有变量类型。

声明

在使用变量之前必须对其进行声明(为编译器所做的描述)。为了声明变量,首先要指定变量的类型,然后说明变量的名字。

int height;float profit;

第一条声明说明 height 是一个 int 型变量,这也就意味着变量 height 可以存储一个整数值。

第二条声明则表示 profit 是一个 float 型变量。

如果几个变量具有相同的类型,就可以把它们的声明合并:

int height, length, width, volume;float profit, loss;

当 main 函数包含声明时,必须把声明放置在语句之前:

int main(void){    声明;    语句;}

在 C99 中,声明可以不在语句之前。例如, main 函数中可以先有一个声明,后面跟一条语句,然后再跟一个声明。

注意每一条完整的声明都要以分号结尾。

赋值

变量通过赋值的方式获得值。例如,语句

height = 8;length = 12;width = 10;

把数值 8、 12 和 10 分别赋给变量 height、 length 和 width, 8、 12 和 10 称为常量( constant)。

初始化

当程序开始执行时,某些变量会被自动设置为零,而大多数变量则不会。没有默认值并且尚未在程序中被赋值的变量是未初始化的( uninitialized)。

如果试图访问未初始化的变量(例如,用 printf 显示变量的值,或者在表达式中使用该变量),可能会得到不可预知的结果,甚至是程序崩溃。

我们可以采用:

赋值的方法给变量赋初始值在变量声明中加入初始值

例如,可以在一步操作中声明变量 height 并同时将其初始化:

int height = 8;

按照 C 语言的术语,数值 8 是一个初始化器( initializer)。

在同一个声明中可以对任意数量的变量进行初始化:

int height = 8, length = 12, width = 10;

注意,上述每个变量都有属于自己的初始化器。在接下来的例子中,只有变量 width 拥有初始化器 10,而变量 height 和变量 length 仍然未初始化:

int height, length, width = 10;
变量命名规则

在编写程序时,需要对变量、函数、宏和其他实体进行命名。这些名字称为标识符(identifier)。在 C 语言中,标识符可以含有字母、数字和下划线,但是必须以字母或者下划线开头。

下面是合法标识符的一些示例:

times10 get_next_char _done

接下来这些则是不合法的标识符:

10times get-next-char

不合法的原因:

符号 10times 是以数字而不是以字母或下划线开头的;符号 get-next-char包含了减号,而不是下划线。

C 语言是区分大小写的;也就是说,在标识符中 C 语言区分大写字母和小写字母。例如,下列 8 个标识符全是不同的:

job joB jOb jOB Job JoB JOb JOB
变量分类

C变量可以分为以下类型:

局部变量:在函数内部定义的变量。只能在函数内部使用。全局变量:在函数外部定义的变量。可以在整个程序中使用。静态变量:在函数内部定义的变量,但是在函数调用结束后,它的值不会被销毁。下一次调用该函数时,该变量的值仍然存在。自动变量:在函数内部定义的变量,当函数调用结束时,它的值会被销毁。外部变量:在函数外部定义的变量,可以在整个程序中使用。寄存器变量:在函数内部定义的变量,可以存储在寄存器中,以便快速访问。

局部变量示例

// C program to declare and print local variable inside a function.#include <stdio.h> void function() {    int x = 10; // local variable    printf("%d", x);} int main() { function(); }

输出 10

全局变量示例

// C program to demonstrate use of global variable#include <stdio.h> int x = 20; // global variablevoid function1() { printf("Function 1: %d\n", x); } void function2() { printf("Function 2: %d\n", x); } int main() {    function1();    function2();    return 0;}

输出

Function 1: 20Function 2: 20

静态变量示例

语法:

static data_type variable_name = initial_value;

示例:

// C program to demonstrate use of static variable#include <stdio.h> void function() {    int x = 20; // local variable    static int y = 30; // static variable    x = x + 10;    y = y + 10;    printf("\tLocal: %d\n\tStatic: %d\n", x, y);} int main() {    printf("First Call\n");    function();    printf("Second Call\n");    function();    printf("Third Call\n");    function();    return 0;}

输出

First Call    Local: 30    Static: 40Second Call    Local: 30    Static: 50Third Call    Local: 30    Static: 60

自动变量示例

语法:

auto data_type variable_name;        ordata_type variable_name;    (in local scope)

示例:

// C program to demonstrate use of automatic variable#include <stdio.h> void function() {    int x = 10; // local variable (also automatic)    auto int y = 20; // automatic variable    printf("Auto Variable: %d", y);}int main() {    function();    return 0;}

输出

Auto Variable: 20

外部变量示例

语法:

extern data_type variable_name;

示例:

  ----------myfile.h------------  extern int x=10;  //external variable (also global)     ----------program1.c----------  #include "myfile.h"  #include <stdio.h>  void printValue(){      printf("Global variable: %d", x);  }

寄存器变量示例

语法:

register data_type variable_name = initial_value;

示例:

// C program to demonstrate the definition of register variable#include <stdio.h> int main(){    // register variable    register int var = 22;     printf("Value of Register Variable: %d\n", var);    return 0;}
练习题下列 C 语言标识符中,哪些是不合法的?
(a) 100_bottles(b) _100_bottles(c) one__hundred__bottles(d) bottles_by_the_hundred_
下列哪些是 C 语言的关键字?
(a) for(b) If(c) main(d) printf(e) while

欢迎大家把答案发到评论区,一起讨论。

欢迎大家分享给朋友,一起学习一起进步!

标签: #c语言不同类型赋值 #char ch赋值 #char型赋值语句 #c语言中的赋值规则 #c语言中的赋值规则有哪些