-
-
[分享]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期)