【C】数据类型--知识点总结

ASCII码

NULL--0

'0'--48

'A'--65

'a'--97

P. 大小转换'f'-'F'

#include <stido.h>
int main (void)
{
    int a = 'f';
    printf("%c\n",a-32);
    return 0;
}

标识符的命名规则

1、只能由字母、数字、下划线组成

2、只能用字母、下划线开头

3、不能与关键字重复

宏定义

#define 变量名(一般是大写,不是一定要大写)表达式

P. 计算出一年有多少秒

#include <stido.h>
#define YEAR_SECOND (365*24*60*60)
int main(void)
{
    printf("%d\n",YEAR_SECOND);
    return 0;
}

变量

从变量的作用域可分为:全局变量、局部变量

全局变量:定义在函数模块外部,作用域直到代码结束,如果没有赋初值,会自动为0

局部变量:定义在函数模块内部,作用于存在在花括里,如果没有赋初值,会是随机值

#include <stdio.h>
int a=10; //全局变量
int b=a; //错误 赋值语句需要有函数执行,函数体外只能进行初始化,不能进行赋值运算
int c;
c=20; //正确 C语言执行过程中对代码进行了优化,将int c; c=20; 优化成一句话int c=20;
int main(void)
{
    int n=20; //局部变量
    printf("%d\n",a);
    printf("%d\n",c);
    return 0;
}

从变量的存在时间(生存周期)可分为:静态存储、动态存储

静态存储:程序在运行期间分配固定的存储方式

动态存储:程序在运行期间根据需要动态的分配存储空间

定义:<存储类型><数据类型> 变量名;

存储类型:static、extern、register、auto

static:1、修饰全局变量、限制作用域

            2、修饰函数、限制作用域

            3、修饰局部变量、延长生命周期

extern:外部文件的调用,只能修饰全局变量

register:计算速率快,数量少

auto:函数中的局部变量,如果不专门声明为static存储,则都是动态分配存储空间。数据存储在动态存储区内。调用函数时系统自动分配空间,在函数结束时释放该空间。这些局部变量被称为自动变量。自动变量用auto关键字声明。(声明时auto可以省略)

显示转换(强制转换)

(数据类型) 变量名

#include <stido.h>
int main(void)
{
    float a=1.24;
    printf("%d\n",(int)a);
    return 0;
}

运算符

按操作对象来分:一目运算符、二目运算符、三目运算符

按功能来分:算术运算符、逻辑运算符、赋值运算符、比较运算符、位运算符、逗号运算符、取地址、取内容、求字节

1)算数运算符

+、-、*、/、%、++、--

++: 分为前++、后++,两者单独存在时都是自加1。和其他表达式一起时,前++先自加1,再赋值。后++先赋值,再自加1。

--: 与++同理。

P. 交换两个变量的值(算术运算)

#include <stdio.h>
int main(void)
{
    int a=7;
    int b=3;
    a=a+b;
    b=a-b;
    a=a-b;
    printf("a=%d----b=%d\n",a,b);
    return 0;
}

2)逻辑运算符

真:非0

假:0

! -- 非

&& -- 逻辑与:(表达式1)&&(表达式2)

|| -- 逻辑或:(表达式1)||(表达式2)ps: 如果表达式1为真,表达式2就不用执行,直接执行下面的代码

备选拼写:iso646.h头文件

&& -- and

|| -- or

! -- not

3)赋值运算符

=、+=、-=、/=

a+=b; //a=a+b;

4)比较运算符

<、>、==、!=、>=、<=

5)位运算符

& -- 位与

| -- 位或

~ -- 取反

^ -- 异或

P. 交换两个变量的值(位运算)

#include <stido.h>
int main(void)
{
    int a=7;
    int b=3;
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a=%d----b=%d\n",a,b);
    return 0;
}

左移 <<n -- 把最左边的n位移除,最右边添加n个0

右移<<n -- 无符号:把最右边的n位移除,最左边添n个0

                   有符号:把最右边的n位移除,最左边添n个与符号位相同的数

置1:

#include <stdio.h>
int main(void)
{
    int a=7;
    printf("%d\n",(a|((1<<3))));
    return 0;
}

清0:

#include <stdio.h>
int main(void)
{
    int a=7;
    printf("%d\n",(a&(~(1<<2))));
    return 0;
}

6)逗号运算符

int b=(3,8,10); //b=10;

7)取地址

&变量名

scanf("%d",&a);

scanf("%s",a); //a为数组

8)取内容

*地址 -- 取的是地址里的内容

9)求字节

sizeof(数据类型、数值、字符)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lindsey小姐月光加冕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值