C语言学习笔记1——C语言基础变量

#include <stdio.h> //头文件,为了调用他人的函数

int main(void) //main函数,C程序执行入口,()内为返回值,int为返回值类型

{

        int a, b; //变量声明,a和b为变量名字     

        scanf("%d %d", &a, &b); //C语言标准函数scanf

        printf("max = %d\n", a > b ? a : b); //C语言标准函数printf,“\n”转义字符表示无法键入的字符(“\t”制表符,“\b”退格键)

        return 0; //保持逻辑连贯性的需要,正常结束main函数返回整形 0

}

一、变量

        变量相当于容器,只有调用的时候才使用内存空间,否则不占用

(一)变量种类

1、局部变量 / 临时变量

特点:

        定义在函数内的变量

        只能在函数内使用

        函数一旦结束,变量也会对应被销毁,释放内存空间

        若没有赋予初值,数值会是乱码

2、全局变量

特点:

        定义在函数外的变量

        能在整个程序中使用(即所有函数都可使用)

        一旦声明,在整个程序 运行过程中都存在,不会被销毁

        若没有赋予初值,数值会是 0

3、局部变量与全局变量相结合

        若在函数外定义了一个全局变量,刚好在函数内定义了一个跟全局变量名字相同的局部变量,会优先使用局部变量(就近原则)

        ps.同一变量只要不在同一层次就可以

4、变量的命名

        严格区分大小写(在Linux中变量命名,一般采用“小写”+“下换线”)

        不能以数字开头,不能出现除“_”外的特殊字符号

        同一层次不允许变量重名

5、变量的声明

        int i;

        申请一块内存,用 i 命名这块内存

        这块内存是 int 类型的的内存(决定了两件事):

                决定了申请的内存大小(不同类型的变量其内存大小都不同)

                决定了之后用什么方式来分析这一块内存

        i = 10;

        通过 i 这个别名访问到其内存,往其内赋值为10

(二)数据类型

1、常量类型

(1)整型常量

        23:十进制整型常量,引用于计算类场景

        023:八进制整形常量,引用于权限类场景,一位代表3位二进制

        0x23/0X23:十六进制整型常量,引用于底层场景,一位代表4位二进制

        23U:常用声明类型方式,默认的23是整形,但23U就变成无符号整形(unsigned int)

(2)浮点型常量

        3.14:浮点数

        3.14e2/3.14E-2:科学计数法浮点数

(3)字符型常量

        ASCII码来存放一个字符,每个字符有其对应的一个数字,例如:‘A’为字符型常量,其对应的数字为65,‘a’为字符型常量,其对应的数字为97,ASCII码中最大的英文字符最大值为177

        '\n':转义序列,代表换行动作

        '\23':转义字符,默认将后面的数值以八进制的方式找到对应的ASCII码

        '\x23':转义字符,默认将后面的数值以十六进制的方式找到对应的ASCII码

        '\\':转义字符“\”

ps.字符型常量一般除了转义序列和转义字符外,一般不允许有多个字符在里面

(4)字符串型常量

        "ymy" =>双引号里面随便放

特点:

        字符串其实是个字符的地址

        字符串默认在其技术位置自动补一'\0'字符(所以"ymy"看起来只有3个字符,但其实大小为4个字符)

        类型char*:字符地址,返回的是字符串中首元素的地址

(5)布尔型常量

         头文件:

        #include <stdbool.h>

        逻辑真:ture        逻辑假:false

        一般C语言中零为假,非零为真

2、变量类型

(1)int 整形变量

大小:一般32位

分析方式:

最高位为符号位,剩下的31位为数据位

正数:符号位为0,剩下的31位按照原码的方式分析:

负数:符号位为1,剩下的31位按照原码的补码方式来进行分析;

原码:原本的数据解释出来是怎么样子的就是哪个样子

反码:原码按位取反

补码:反码+1

(2)short 短整型变量

大小:一般16位

分析方式:

最高位为符号位,剩下的15位为数据位

正数:符号位为0,剩下的15位按照原码的方式分析:

负数:符号位为1,剩下的15位按照原码的补码方式来进行分析;

原码:原本的数据解释出来是怎么样子的就是哪个样子

反码:原码按位取反

补码:反码+1

ps.一般来说,编译器决定位数大小。

(3)long 长整型变量

大小(long):一般64位

          在32位系统中是32位

大小(long long):64位

分析方式:

最高位为符号位,剩下的63位为数据位

正数:符号位为0,剩下的63位按照原码的方式分析:

负数:符号位为1,剩下的63位按照原码的补码方式来进行分析;

原码:原本的数据解释出来是怎么样子的就是哪个样子

反码:原码按位取反

补码:反码+1

(4)char 超级小整型(8位单片机里面使用)

大小:8位数据

        ps.无符号也是1bit

ascii最大值是127(用到7位数据)

3、字符与字符串的存放方式

(1)存放字符

char:用来存放字符类型

大小:8位

分析方式:按照ASCII的方式去分析内存

赋值方式:

char  ch='a';

char  ch = 97;

char  ch = '\132';

(2)存放字符串

1)char *string = "hello"

        将"hello"字符串赋值给string这个指针变量,其中,首元素h的地址给了string指针变量

2)char string[100]  = "hello"

        将"hello"字符串的内容复制到数组string中

4、各数据类型字32/64位系统字节数

数据类型(中)数据类型(英)32位64位取值范围
布尔型bool11ture or false
字符型char11-128~127
无符号字符型unsigned char110~255
短整型short22-32768~32767
无符号短整型unsigned short 220~65535
整形int44-2147483648~2147483647
无符号整形unsigned int 440~4294967295
长整型long48\
无符号长整型unsigned long48\
长整型long long88-2^64~2^64-1
单精度浮点型float44范围-2^128~2^128
精度为6~7位有效数字
双精度浮点型double88范围-2^1024~2^1024
精度为15~16位
扩展精度浮点型long double88范围-2^1024~2^1024
精度为15~16位
地址*48\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值