文章目录为了方便读者,将初始C语言(3)和初始C语言(4)和二为一。
- 一、关键字
- (1)常见关键字
- (2)关键字typedef
- (3)register寄存器关键字
- (4)关键字static
- 二、#define定义常量和宏
- 三、指针
- 四、结构体
- 五、总结
一、关键字 (1)常见关键字
为读者简要介绍下面几个关键字:
(2)关键字typedeftypedef是类型重命名
在这里,观察num1和num2,这两个变量的类型是一样的,代码2更简洁。
//代码1 #includeint main() { unsigned int num1 = 0; return 0; }
//代码2 #include(3)register寄存器关键字//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名 typedef unsigned int uint_32; int main() { unsigned int num1 = 0; return 0; }
说到register就不得不提起寄存器,计算机中的一种存储器叫寄存器,是集成到cpu上的。CPU是中央处理器。
扩展一下:
如何运用regidter寄存器关键字:
例:
register int num = 10;//建议将num存储到寄存器中
注意:(1)register起到一个建议的作用,建议将num的值放在寄存器中,最终由编译器决定。
(2)寄存器变量不可以取地址
在C语言中:static是用来修饰变量和函数的
扩展一下:
- 修饰局部变量-静态局部变量
//代码1 #includevoid test() { int i = 0; i++; printf("%d ", i); } int main() { int i = 0; for(i=0; i<10; i++) { test(); } return 0; } //代码2 #include void test() { //static修饰局部变量 static int i = 0; i++; printf("%d ", i); } int main() { int i = 0; for(i=0; i<10; i++) { test(); } return 0; }
运行结果:代码1打印10个1
运行结果:代码2用static修饰后代码打印结果改变为打印1到10.
注意:static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
- 修饰全局变量-静态全局变量
//代码1 //add.c int g_val = 2018; //test.c #includeextern int g_val;//extern是用来声明外部符号 int main() { printf("%dn", g_val); return 0; } //代码2 //add.c static int g_val = 2018; //test.c int main() { printf("%dn", g_val); return 0; }
代码1打印2018,代码2不打印并且报错未定义。
结论:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
3.修饰函数-静态函数
函数与全局变量一样。
结论:一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
//#define定义宏一定是有参数的。
讲指针就必须要说到内存。人们为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给**内存单元进行了编号,这些编号被称为该内存单元的地址。**每个内存单元都对应相应的地址。
每个变量都有地址,如何取出变量地址呢?
int main()
{
int num = 10;
#//取出num的地址
printf("%pn", &num);//打印地址,%p--以地址的形式打印
return 0;
}
那么地址是如何存储的呢?就需要定义指针变量
int num = 10; int *p;//p为一个整形指针变量 p = #
为了更明确如何使用指针,举实例说明:
#include五、总结int main() { int num = 10; int* p = #//p被定义为指针变量 *p = 20;///.为结构成员访问操作符 printf("name = %s age = %d sex = %s id = %sn", s.name, s.age, s.sex, s.id); //->操作符 struct Stu *ps = &s; printf("name = %s age = %d sex = %s id = %sn", ps->name, ps->age, ps->sex, ps->id);
初始C语言到这里也就结束了,以后会详细介绍C语言相关知识,一定会让各位读者收货满满。



