扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在学习编程语言的时候使用的最频繁的就是变量,变量可以为我们存放一些数据,也对我们编程起到很好的帮助,所以我们来说一下C语言中变量的内容。
C语言是一种强类型的语言,对每个变量的类型必须要规定好,而且规定了,所有的变量必须要先创建后才能使用,否则会报错。
在说变量之前,先说明一下数据类型。
在C语言中有这么几种基本的数据类型:整形、浮点型、字符型
如果在这些类型前面添加一个unsigned
就会将这些类型都变为无符号类型
如果在前面添加signed
就变成有符号类型,但是这个修饰符是默认的,所以平时使用的时候不用添加也可以。
类型名 | 关键字 | 所占字节数 |
---|---|---|
整形 | int | 4个字节 |
长整形 | long | 8个字节 |
短整形 | short | 2个字节 |
无符号整形 | unsigned int | 4个字节 |
无符号长整形 | unsigned long | 8个字节 |
无符号短整形 | unsigned short | 2个字节 |
类型名 | 关键字 | 所占字节数 |
---|---|---|
单精度浮点型 | float | 4个字节 |
双精度浮点型 | double | 8个字节 |
无符号单精度浮点型 | unsigned float | 4个字节 |
无符号双精度浮点型 | unsigned double | 8个字节 |
类型名 | 关键字 | 所占字节数 |
---|---|---|
字符型 | char | 1个字节 |
无符号字符型 | unsigned char | 1个字节 |
字符型也可以在里面存放字符型,但是范围比较小,很适合单片机的开发。
二、变量的操作 1.变量的创建有两种创建变量的方法。
第一种:只定义出变量,但变量中没有初始值
类型名 变量名;
第二种:直接给创建的变量一个初始值
类型名 变量名 = 初始值;
例如创建出一个int类型的变量a,创建的方法如下:
int a;
变量名的的命名规制如下:
这里变量的使用就只有重新赋值和输出内容
对变量重新赋值,使用的运算符=
,例如将创建出来的变量a赋值为20
int a = 10;
a = 20;
执行完后a的值就为20。
2.2 变量的加减这里可以使用变量中的内容进行相加或者相减等运算符,也可以将加减的内容重新赋给一个变量
int a = 10, b = 20, c;
c = a + b;
2.3 变量的隐式类型转换当两个不同的类型相加或者相减,变量之间会实现一个隐式类型的转换,例如:有一个变量的类型为int
类型,这个类型和一个char
类型的变量相加,得到的类型会变成int
类型,可以使用下面的代码验证
int a = 10;
char b = 5;
printf("%d", sizeof(a + b));
输出的结果为4。
隐式类型转换是两个不同类型进行运算时将其中小的类型自动转换为一个大的类型。
如果有一个int
类型,想让它变成一个char
类型,这个时候没有办法使用 隐式类型转换 ,那这个时候就只能强制它进行转换,所以就得使用 强制类型转换 ,强制类型转换的写法如下:
(目标类型)变量名;
按照这个写法将上面的问题解决:
int a = 10;
(char)a;
这样int
类型的a变量就会强制转换为char
类型。
强制类型转换是将一个大类型强制转换为一个小类型
C语言中没有直接调用就可以输出变量的类型的函数,但可以通过查看变量所占的字节数来推断出这个变量所占的类型,利用的关键字为sizeof()
,这个关键字会返回在括号里的内容所占的字节数,可以通过返回的字节数来判断这个内容的类型。
比如说返回的是4,那可能是int
类型或者是float
类型,如果返回的是1,那可能是char
类型。
这种方法只能用在使用内置数据的变量中,如果对自定义的数据类型或者是自定义函数中是不能使用的。
例如要输出一个变量所占字节:
int main(){int a = 10;
printf("%d", sizeof(a));
}
三、全局变量和局部变量全局变量顾名思义,就是在全局都可以使用的一个变量,它声明一般是在函数外进行声明。
局部变量是在局部创建的,只能在这个范围中才能使用,这个范围一般叫做作用域,出了这个作用域之后局部变量就不能使用了。
在C语言中,作用域一般是使用{}
进行区分,比如说有一个函数
void test(){}
这个函数的作用域就是从{
开始,一直到}
结束,在这个区间就属于test
函数的作用域。
比如说选择有一个代码
#includeint a = 10;
int main(){int a = 5;
printf("%d", a);
return 1;
}
这里输出的a的值为多少?
答案是5,因为在局部中使用重名的全局和局部变量时,优先使用的是局部的变量。
如果是下面这种情况:
#includeint a = 10;
void test(){int a = 5;
printf("%d", a);
}
int main(){test();
printf("%d", a);
return 1;
}
这个代码的输出结果为多少呢?答案是5和10。
四、常量常量顾名思义就是不会改变的量,在C语言中有两种创建常量的方式
1.#define使用宏定义#define
创建出常量,创建的方法很简单,就是#define 常量名 值
创建完后不需要写分号结束,例如创建一个常量AGE
#define AGE 18
这个常量就创建好了,而这个常量创建的地方是在全局中创建,所以在整个文件中都可以使用
2.const修饰const
是将可变量变为不可变量的一个修饰词,使用这个修饰词减变量修饰为不可变的量也可以间接达到常量的方法
int main(){const int a = 10;
}
上面的代码就可以将a这个变量修饰为一个常量了,但记住在使用const
修饰的时候,一定要给这个变量一个初始值,否则后面没有办法再给这个变量一个初始值了,这种方法一般用在局部。
变量的使用是非常简单的,后面的使用还是比较多,慢慢记住就可以了。常量一般对于一些固定的值进行固定,让它不轻易修改。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流