10.15学习记录

发布于:2022-10-16 ⋅ 阅读:(1457) ⋅ 点赞:(1)

目录

C语言初学小问题

C语言注释

EOF

一不小心把解决资源管理器给关了

真假小问题

特殊操作符

条件操作符

逗号表达式

特殊关键字

关键字typedef

关键字register

static  - 静态的/

1. static 修饰局部变量//

static修饰全局变量和函数

#define定义常量和宏

#define定义常量

#define定义宏

指针

内存

找到内存窗口

解引用操作符

终结

学习心得


C语言初学小问题

C语言注释

C语言注释很容易出错,只会识别最近两个的/**/

字符数组如果初始化,一定要写数组数.

疑惑:数组与取数组地址问题

计算时候一定要注意结果和操作的时候的数据类型.计算浮点的时候一定要有一个是小数,且输出时候 float 是 %f,double %lf

EOF

遇到错误或者文件结束返回-1---EOF--end of file

一不小心把解决资源管理器给关了

真假小问题

/C语言中,0就是假,非0就是真

特殊操作符

介绍单目操

操作符中的++和--

{

条件操作符

exp1?exp2:exp3

int main()

{

int a = 0;

int b = 5;

int c = 10;

int d = (c = a + b, b = a + b, c = b + c);

printf("%d", d);

return 0;

}

逗号表达式

逗号表达式(exp1,exp2,exp3)从左向右 依次计算,结果取最后一个/

特殊关键字

关键字typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名

int main()//重定义关键字typedef

{

typedef unsigned int unit;

unit x = -5;

printf("%d", x);

return 0;

}

关键字register

使用关键字register提醒寄存器,通过使用CPU寄存器,而不是堆栈来处理特定的变量,从而提供对变量的快速访问。

虽然寄存器不一定会满足上述要求,但如果变量被存储在寄存器中,则没有内存地址,因此不能将地址操作符用于寄存器变量。

int main()

{

register int x = 6;

return 0;

}

int main()

{

register int x = 6;

printf("%p\n", &x);

return 0;

}

static  - 静态的/

#include <stdio.h> 一个全局变量不给初始化的话,默认会被初始化为0 //int a; // //int main() //{ //int b=0;//一个局部变量不给初始化的话,默认是随机值 //printf("%d\n", b); // printf("%d\n", a); //return 0; //}

1. static 修饰局部变量//

2. static 修饰全局变量//

3.static 修饰函数/

1. static 修饰局部变量//

本来一个局部变量存储在栈区里,被static修饰的局部变量是存储在静态区的

存储在静态区的变量出了它的作用域变脸也不销毁,所以生命周期长,作用域不会被改变

static修饰局部变量的时候,改变了局部变量的存储类型,使其的生命周期与程序的生命周期

static修饰全局变量和函数

//static 修饰全局变量 //extern 是用来声明外部符号的 //extern int g_val; // //int main() //{ //printf("%d\n", g_val); // //return 0; //}

extern 用来声明外部符号的.一个工程的两个程序是单独编译的

.c文件先单独编译成.obj文件再链接变成可执行程序.exe

全局变量有外部链接属性

当static修饰全局变量.改变了它的链接属性

从外部链接属性变成了内部链接属性

这时static修饰的全局变量只能在本原文件(.c)使用,其他文件无法用到

修饰函数同理.

#define定义常量和宏

#define定义常量

#define MAX 5;//注意用大写,与其他定义区别

#define定义宏

#define MAX 5;//注意用大写,与其他定义区别 #define SUM(X,Y) ((X)+(Y))//注意括号 int main() { int x = 0; int y = 1; printf("%d", SUM(x, y)); return 0; }

指针

内存

内存分为一个个小的内存单元,每个内存的大小是1个字节

为了能够有效的反问道内存的每个单元,就给内存单元进行编号.这些编号为内存单元的地址

(8条消息) 物理地址和虚拟地址的概念_Iqian1314的博客-CSDN博客_物理地址和虚拟地址

变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的

找到内存窗口

int main() { int a = 10; int *pa = &a; return 0; }

解引用操作符

int main() { int a = 10; int *pa = &a; *pa = 20;//解引用操作符 return 0; }

终结

通过指针变量中存储的地址就能找到指针指向的空间.

指针变量就是用来存放地址的

地址的存放需要多大空间,指针变量的大小就应该多大,.

int main() { char ch = 'w'; char* pc = &ch; int a = 10; int* pa = &a; *pc = 'x'; printf("%d", sizeof(pc)); printf("%d", sizeof(pa)); return 0; }

学习心得

今天从九点半学到11:50  两个半小时

下午从两点半学到五点半:三个小时

晚上从七点学到十二点:五个小时

自我感觉认真做了博客,认认真真的注意发文内容,今天学了指针感觉比较难

学习时长有点太长了,明天适当剪短一下,不让自己太紧张.


网站公告

今日签到

点亮在社区的每一天
去签到