萌新的学习笔记,写错了恳请斧正。
目录
数据类型
数据类型分为内置类型和自定义类型
下面介绍部分内置类型(更多的还没学)
*方括号内的内容可省略
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 <stdio.h>
int a = 1; //全局变量
int main()
{
{
int a = 114514; //printf不可用的局部变量
}
int a = 0; //printf可用的局部变量
printf("%d",a); //输出0
return 0;
}
它们在内存中的位置
内存分为堆区、栈区、静态区
全局变量放在内存的静态区
局部变量放在内存的栈区
堆区还没学到