首页
社区
课程
招聘
[分享]C语言基础二-基本数据类型
发表于: 2021-5-11 11:35 4885

[分享]C语言基础二-基本数据类型

2021-5-11 11:35
4885

C语言中,有四种基本数据类型,分别是整型、浮点型、指针、聚合类型。

字符串的存储和交互,一共提出了2种概念:一种是C语言风格的,在字符后面以0结尾,代表是一个字符串;另一种是Pascal风格的,一般用前面两位给定大小,后面存储大小一样的字符,形成一个字符串。
C语言风格的优点是灵活性比较高,特别是在网络通信的时候,只要不是以0结尾,那么可以传输任意的字符;缺点是如果要找第N个字符,那么要一个一个的查找。Pascal风格的优点是长度固定,访问第N个的效率高,可以以跳板的形式访问;缺点是缺乏灵活性。

'a'和"a"的区别:字符a是可以访问Ascii编码的,字符串a则是引用的字符串的首地址。

在数学中有向上取整和向下取整,比如3/2=1.5,向下取整就是取不大于自己的最大整数,也就是1;向上取整就是取不小于自己的最大整数,也就是2。C语言中向0取整,使用右移符号时必须要判断商是否为负数。

C语言中,有typedef关键字,这个关键字的作用允许你为类型定义一个新的名字,也就是起个别名。例如:

那么以后我们定义unsigned int类型的变量的时候,就不用再写unsigned int,直接写DWORD即可。
typedef关键字一般常用在结构体的定义和函数指针上。例如:

那么新的数据类型就是MyStruct,这个类型免去了每次定义的时候都加struct关键字。例如:

C语言中,编写的代码有作用域的限制。作用域是什么,简而言之,当我们定义变量的时候,这个变量的访问要在一定区域内才能进行。
函数作用域:比如你在A函数中定义变量nA,在B函数中定义变量nB,那么在B函数中是不能使用变量nA的。例如:

其中变量nA、nB的作用域是函数作用域,也就是{ }块语句包含的范围。
代码块作用域:主要靠{ }来区分,例如:

如果这样定义变量,则nA不会重定义,且{ }中的int nA = 2;在代码执行到}后结束,不再存在。
文件作用域:在代码外面定义的变量,也就是全局变量,全局变量在当前文件的任何一个位置都可以访问。例如:

typedef unsigned int DWORD
DWORD name = 0;
typedef unsigned int DWORD
DWORD name = 0;
typedef struct MyStruct
{
    int nNumA;
    int nNumB;  
}MyStruct,* PMyStruct;
typedef struct MyStruct
{
    int nNumA;
    int nNumB;  
}MyStruct,* PMyStruct;
// 定义前
struct MyStruct tagStruct;
// 定义后
MyStruct tagStruct;
// 定义前
struct MyStruct tagStruct;
// 定义后
MyStruct tagStruct;
void funA()
{
    int nA = 1;
    printf("%d\r\n",nA);
}
void funB()
{
    int nB = 2;
    printf("%d\r\n",nB);
}
void funA()
{
    int nA = 1;
    printf("%d\r\n",nA);
}
void funB()
{
    int nB = 2;
    printf("%d\r\n",nB);
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 230
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
6666
2021-5-11 17:01
0
游客
登录 | 注册 方可回帖
返回
//