C语言 -003

网友投稿 588 2022-09-14

C语言 -003

C语言 -003

March 31

一.常见关键字

1.1基本介绍(​绿字之前学过的)

// auto==自动

//int a = 10;//局部变量是==自动销毁,自动创建的自动变量,auto省略了

// break 循环和case语句中 应用

// continue 循环中用

// ​​​conset 常变量​​

// default 默认

// do while循环

// while循环

// ​​​enum 枚举常量​​

// extern 引入外部符号,eg:全局变量的引用

//​ register​  ​寄存器关键字 ​用于使用极其频繁的变量,建议此变量放入寄存器。

//(计算机存取数据的地方:1硬盘,2.内存,3.高数缓存,4.寄存器) 访问速度加快,空间减小

// cpu-中央处理器,一般在寄存器拿数据,拿不到数据就依次向下访问,提高效率

// signed  unsigned 无符号变量

// 有符号数 eg:int定义的数是有符号的,全称是sigened int:

// ​​​sizeof操作符 计算占用空间的大小​​

// static 静态的

// struct 结构体关键字

// switch语句

// typedef 类型定义

// union 联合体 共用体

// ​viod​ 空

​// volatile 比较难,操作系统再讲​

1.2几个关键字的应用(关键字与变量名不能一样,即产生冲突)

//typedef- 类型定义 -类型重定义

#include int main(){ unsigned int num1 = 0;//无符号的int类型数据,代码太长了,简化一下 typedef unsigned int u_int;//将类型重命名为u_int,简单了写 u_int num2 = 10; return 0;}

//static 修饰作用

1.对局部变量

#include //test函数 ---注意函数体放上面void test(){ //int a =0; static int a = 1;//静态的局部变量,让a不再初始化, //即static修饰局部变量a时,a的生命周期变长 a++; printf("a==%d\n", a); }//程序入口int main(){//int i = 0; while(i<5) { test(); i++; } return 0;}

结果

2.对不同文件下全局变量

3.对不同文件下函数

1.3 #define 定义宏==在标识符后面加个参数

#define _CRT_SECURE_NO_WARNINGS#include #define MAX 100;// 标识符常量// #define 定义宏==在标识符后面加个参数 没有深讲#define ADD(X,Y) (X>Y?X:Y)//有三目操作符//Max函数int Max(int x,int y){ if (x > y) return x; else return y;}int main(){ int a = 10; int b = 20; int max = 0; int Hong = 0; //函数方式 max = Max(a,b); printf("max==%d\n", max); //用宏的方式 Hong = ADD(a, b); printf("Hong==%d\n",Hong); return 0; }

结果

二.初识指针

2.1内存与指针

​​// 必须搞清楚内存,再搞指针    ​

​​// 大内存要拆分成各个 小内存单元==地址空间​​

​​// 先给各个地址空间分配不同的地址编号,通过编号找这些地址空间==小内存单元​​

​​// 如何产生地址----- 怎么给小内存单元编号----​​

​​// 32位 和 64位计算机​​

​​// 具有32或64地址线==数据线​​

​​// 是线就要通电 通电就有正负电​​

​​// 正电==1  负电==0​​

​​// 32根线就有32对正负电,对应32位的二进制

​0000 0000 0000 0000 0000 0000 0000 0000

0000 0000 0000 0000 0000 0000 0000 0001

0000 0000 0000 0000 0000 0000 0000 0010

​...............​

​1111 1111 1111 1111 1111 1111 1111 1111​

​​// 所以就可以产生2*32个编号,然后一个编号对应到一个小内存单元,就形成了地址编号​​

​​// 地址编号有了,就该看小内存单元的空间大小了----​​

​​// 一共有2*32个小内存空间​​

​​// 一个空间放一个字节==byte, bit话太小,kb太大,用计算器算一下就可以了​​

​​ // 例: int a的局部变量a就向内存申请了四个字节存储数据,每个字节都有字节地址标号,所以可以看出 &取地址符 的作用就出来了。​

​//代码如下

#include int main(){ int a = 10; //用&取地址符,看a的地址 printf("%p\n", &a); int*p = &a; //有一种变量专门用来存放地址的==指针变量 int*p printf("%p\n", p); //%p 这个是打印地址: 00000099523AF934 *p = 20; //含义是找到p地址的存放的值 改为20 //*--是一种解引用操作符 printf("new a ==%d\n", a); return 0;}

​结果

2.2指针简单应用

#include int main(){ char ch = 'u'; char*pc = &ch;//指针类型的一个区分,int char类型 int val = 0; printf("ch==%c\n",ch); printf("pc地址==%p\n",pc); printf("字符==%c\n", *pc); *pc ='k'; printf("通过指针地址修改值==%c\n", ch); printf("ch==%c\n", ch); //*p是地址编号的存放 所以*p这个指针就用了4个字节 // 64位计算机就用了8个字节byte printf("%d\n", sizeof(val)); printf("%d\n", sizeof(pc));//指针名字叫pc 类型是char printf("%d\n", sizeof(ch)); //指针内存的大小与运行平台的配置管理器有关,可以修改 return 0;}

​结果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Scala函数式编程(五) 函数式的错误处理(scala高阶函数详细介绍)
下一篇:如何快速帮助自己了解自身的投资能力圈,并以此制定切实可行的投资策略呢?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~