椋鸟C语言笔记#2:数据类型与变量

萌新的学习笔记,写错了恳请斧正。


目录

数据类型

1-字符型

2-整型

3-浮点型

4-布尔类型

各种数据类型的长度

变量

全局变量

局部变量

当它们起冲突时...

它们在内存中的位置


数据类型

数据类型分为内置类型自定义类型

下面介绍部分内置类型(更多的还没学)

*方括号内的内容可省略

1-字符型
  • [signed] char
  • unsigned char

可以存一个字符

signed代表有正负号区别,unsigned反之

signed可以省略,unsigned不行

对于字符类型,signed和unsigned基本没有区别

(具体区别见char与signed char, unsigned char的区别_char signed unsigned char-CSDN博客)

2-整型

短整型:

  • [signed] short [int]
  • unsigned short [int]

整型:

  • [signed] int
  • unsigned [int]

长整型:

  • [signed] long [int]
  • unsigned long [int]

更长整型(C99后):

  • [signed] long long [int]
  • unsigned long long [int]

可以存一个整数

(只考虑非负数的情况下一般unsigned的数据类型值域大一点)

(举个例子,short从-32768~32767,而unsigned short从0~65535)

3-浮点型
  • float
  • double
  • long double

可以存一个小数

4-布尔类型
  • _Bool

用以表示真假,有俩个取值true和false,用以代替1和0

使用布尔类型需要包含头文件stdbool.h

各种数据类型的长度

可以用关键字(也是操作符)sizeof来计算各类型数据的长度

sizeof输出单位是字节,其操作数可以是类型、变量、表达式

int a;
printf("%zd\n", sizeof(a));
printf("%zd\n", sizeof a);
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(a + a));

sizeof的操作数如果不是类型,可以省略掉括号

sizeof后面的表达式不会真正参与计算,只是求数据长

因为sizeof返回的类型在不同的系统中,可能是unsigned int、unsigned long甚至unsigned long long,可能会导致程序换个电脑就出问题。所以C语言给sizeof的返回值单独设置了一个类型叫size_t,可以自己根据系统情况返回类型。而这时,其所对应的占位符应为%zd

具体数据长度的规定被写在头文件limits.h和float.h中

变量

变量,顾名思义,能变的量,和常量相对

变量是可以我们自己创建的,格式如下:

datatype name
//datatype用任意数据类型的名字替代
//name就是我们自己随便起的变量名,只要不是关键字就行
//比方说:
int a;

如果变量在创建时就直接给一个值进去,就叫初始化:

int a = 1;
char b = 'z';
double c = 3.14;

变量分为局部变量全局变量

全局变量

全局变量就是在大括号外面定义的变量,在整个工程里都能用。

哪怕是同一个工程的不同源文件,也可以申请调用。

局部变量

局部变量就是在某个大括号内定义的变量,也只能在这个大括号内使用

当它们起冲突时...

当局部变量和全局变量一致,函数优先使用其所在大括号内的可用的局部变量

比如说:

#include 

int a = 1;  //全局变量

int main()
{
    {
        int a = 114514;  //printf不可用的局部变量
    }
    int a = 0;  //printf可用的局部变量
    printf("%d",a);  //输出0
    return 0;
}
它们在内存中的位置

内存分为堆区栈区静态区

全局变量放在内存的静态区

局部变量放在内存的栈区

堆区还没学到


你可能感兴趣的:(C语言笔记,笔记,c语言,开发语言)