signed和unsigned关键字的使用

简介: signed和unsigned关键字的使用

各位少年:


我们今天来分享signed和unsigned关键字,分别为有符号的和无符号的


C语言使用signed和unsigned关键字修饰字符型和整数类型的。


signed关键字,表示一个类型带有正负号,包含负值;


unsigned关键字,表示该类型不带有正负号,只能表示零和正整数。


对于int类型,默认为带有正负号的,也就是说int等同于signed int。


简单点来说(unsigned就是无符号的,只能表示正整数,signed是有符号的表示有符号的整数(编译器默认为是这个))

#include<stdio.h>
int main()
{
unsigned int num=20;//只能表示正整数,负数没法表示
return 0;
}


我们都知道计算机是由二进制转换的,一个字节就是八个比特位(2进制是0和1)那么一个是四个比特位,

最高位是正数是0开头负数是1,那么很显然unsigned无符号的最高位肯定是0,有符号的signed带判定。

我们再来看一段有趣的代码

#include<stdio.h>
int main()
{
int age;
printf("%d",age);
return 0;
}

这里的age没初始化会出现一个东西叫做值随机,但是VS对代码要求特别高,这样的代码是编译不过去的。

#include
int ch;
int main()
{
printf(“%d\n”,ch)
return 0;
}


全局变量没初始化是0,这个我已经验证过了。


下面是全局变量和局部变量的定义


全局变量:在大括号外部定义的变量就是全局变量,全局变量的使用和范围更广,整个程序中使用,都是有办法使用的。


局部变量:在大括号内部定义变量和就是局部变量,局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。


相关文章
|
6月前
|
C语言
signed和unsigned
C语言中的`signed`和`unsigned`修饰符用于整型(int)和字符型(char)。`signed`表示可正负,包含负值;`unsigned`则仅表示非负值,如int默认带signed,unsigned int在相同内存长度下表示的正整数范围加倍。对于char,可能为signed char或unsigned char,声明时建议明确指定。
44 2
|
6月前
|
编译器 C++
C++_int负数转unsigned
C++_int负数转unsigned
61 0
|
编译器
unsigned long int 和 unsigned long一样吗?
unsigned 代表的是无符号的整形数
276 0
|
存储 C语言
C语言:char与unsigned char类型数据的范围
unsigned char 的范围是 0~255,当 i=255 时,i++变为0,从0到255无限循环,因此程序运行结果为死循环
349 0
|
存储 C语言
char&short的整形提升
char&short的整形提升
75 0
代码熟悉整型提升与unsigned signed
代码熟悉整型提升与unsigned signed
78 0
|
存储 编译器 C语言
unsigned 无符号是什么?
unsigned 无符号是什么? 数据是如何储存的 什么叫无符号
89 0
|
存储 C语言
C语言-------数据类型中signed、unsigned他们在不同数据类型中存储的不同体现并且与printf关系的总结。
C语言-------数据类型中signed、unsigned他们在不同数据类型中存储的不同体现并且与printf关系的总结。
char、signed char和unsigned char
char、signed char和unsigned char
285 0
#define a int[10]与 typedef int a[10]用法
// #define a int[10] #include #include #define a int[10] int main() { int *p=(int *)malloc(sizeof(a)); p[0]=1; printf("%d\n",p[0]);...
1747 0