Talk is cheap,show the code.

目录

操作符

static静态

#define定义常量和宏

指针


操作符

/除

7/2==2(整数除法两端都是整数,小数点直接舍去不会四舍五入)

7.0/3==2.333333 或写成 7/3.0(小数除法两段有一个数是小数)

%求余 取模

7%3==1

一个等号是赋值,两个等号是等于。

static静态

修饰变量(局部,全局)和函数

1.static修饰局部变量

进入作用域创建,出作用域销毁 static修饰局部变量的时候,局部变量就变成了静态局部变量,出了局部范围不会被销毁,下一次进入函数依然存在

因为static修饰的局部变量是存储在静态区的

内存 分为 栈区,堆区,静态区

栈区 -局部变量 函数的参数

堆区 -动态内存开辟的 malloc realloc calloc free

静态区 -(特点:出了范围不被销毁)静态变量 全局变量(生命周期很长)

静态区中的数据生命周期与程序的生命周期是一致的,程序结束,静态的生命周期也就结束了。

作用:

修饰局部变量时,实际改变的是存储位置,本来一个局部变量放在栈区,被static修饰就放在静态区。 从而导致,出了作用域依然存在,生命周期没有结束。

2.static修饰全局变量

在整个工程里都可以使用(无论创建多少个源文件)

extern是用来声明外部(其他源文件)符号

作用:

一个全局变量本来是具有外部链接属性的,但被static修饰之后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其他文件内部使用。

(使用上会感觉作用域变小了)

3.static修饰函数

作用:

一个函数本来是具有外部链接属性的,但是被static修饰后,外部链接属性就变成内部链接属性,这时这个函数只能在自己所在的源文件内部使用,在其他文件里是无法使用的。

(使用上会感觉作用域变小了)

#define定义常量和宏

预编译-编译-汇编-链接-运行

1.#define定义常量

#define MAX 1000
//#define STR "hello bit"
int main(){ int m=MAX;
printf("%d\n",m);
//printf("%s\n",STR);
return 0; }

打印出1000 或者hello bit

预编译会吧MAX全部替换成1000

内容替换

2.#define定义宏

//函数的实现
int get_max(int x, int y)
{//int z=0;//z=(x>y?x:y);//return z;return (x>y?x:y);//简单写法
}int main()
{int a=10;int b=20;int m=get_max(a,b);printf("较大值:%d\n",m);return 0;
}
//#define定义宏
#define MAX(x,y) ((x)>(y)?(x):(y))
int main()
{int a=10;int b=20;int m=MAX(a,b);printf("较大值:%d\n",m);return 0;
}

宏名一般全大写,宏没类型也没返回类型

宏体可以多条语句

指针

内存是电脑上重要的存储器

一个内存单元大小是一个字节

内存单元的编号如何产生?-->-->

32位:32根地址线/数据线

地址线-电线-通电

电信号转换成数字信号 0/1

内存单元是有编号的,编号就是内存单元的地址。

int main()
{
int a=10;
printf("%p\n",&a);//%p打印地址
return 0;
}

指针其实就是个地址,一个编号

//存地址
int main()
{int a=10;int* pa=&a;//pa 是用来存地址的,所以我们把pa叫指针变量//char ch='w'://char* pc=&ch;*pa=100;//*解引用操作符printf("%d",a);//100return 0;}

*-->pa是指针变量(专门用来存放地址)

int-->pa指向的对象是int类型的

*pa 通过pa中存放的地址,找到它所指向的对象

&取地址操作符

*解引用操作符

指针变量的大小

用sizeof计算

指针大小取决于平台(地址的大小)

32位平台:

不管什么类型都是4个字节 4byte

64位平台: 8byte

描述复杂类型

struct结构体关键字

用{}来初始化

//类型typedef struct Stu{char name[20];//名字-字符串int age;      //年龄 - 整数char sex[5]; //性别 - 字符串char id[20];//学号 - 字符串}Stu;void Print(struct Stu* ps){//printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).id);printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->id);//-> 结构成员访问操作符//结构体指针->结构体成员}int main(){//结构体变量struct Stu s1 = {"张三", 18, "男", "2021060701"};//学生1struct Stu s2 = {"如花", 45, "女", "2021060702"};//学生2Stu s3 = {0};//输入结构体数据scanf("%s %d %s %s", s1.name, &(s1.age), s1.sex, s1.id);//直接打印的printf("%s %d %s %s\n", s1.name, s1.age, s1.sex, s1.id);//. 结构成员访问操作符//结构体变量.结构体成员//使用函数打印Print(&s2);return 0;}

21.12.19初识C语言相关推荐

  1. 21.11.19 贝卡 宝贝制造者 类星体(手雷) 21.11.26 卢西恩的召唤 惊雷AAA 永田(手雷) 21.12.03 绝对征服 嗜血野兽 传输(手雷) 21.

    21.11.19 贝卡 宝贝制造者 类星体(手雷) 21.11.26 卢西恩的召唤 惊雷AAA 永田(手雷) 21.12.03 绝对征服 嗜血野兽 传输(手雷) 21.12.10 垂死之息 某人的财产 ...

  2. 【跃迁之路】【674天】程序员高效学习方法论探索系列(实验阶段431-2018.12.19)...

    @(收集箱(每日一记,每周六整理))专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) ...

  3. 【历史上的今天】10 月 12 日:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 10 月 12 日,历史上的这一天,哥伦布发现了"新大陆",在他发现的这片美洲上 ...

  4. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  5. 《21天学通C语言(第6版•修订版)》一导读

    前 言 21天学通C语言(第6版•修订版) 本书旨在引导读者在21天内学通C语言编程.虽然有来自诸如C++.Java和C#的激烈竞争,但很多初学编程者还是会选择C语言.正如第1天课程介绍的原因,选择C ...

  6. c生万物之初识c语言

    c生万物之初识c语言 前言: 1.初学习了c语言,感觉还是很不错的,哈哈~~.下面让我来分享下我目前对c的认识 题外:后面有关于c语言风格培养的<高质量的c-c++编程>PDF版链接,有需 ...

  7. 《21天学通C语言(第7版)》一2.2 程序的组成部分

    本节书摘来自异步社区<21天学通C语言(第7版)>一书中的第2章,第2.2节,作者 [美]Bradley Jones , Peter Aitken , Dean Miller,更多章节内容 ...

  8. 安徽科技学院 2014-2015-2学期计算机14级12班《C语言程序设计II》期末考试

    Contest - 2014-2015-2学期计算机14级12班<C语言程序设计II>期末考试 Start time:  2015-07-03 19:05:00.0  End time:  ...

  9. 从零开始C语言精讲篇1:初识C语言

    文章目录 前言 一.什么是C语言(了解) 二.第一个C语言程序 三.数据类型 四.变量.常量 4.1变量 4.1.1定义变量的方法 4.1.2变量的分类 4.1.3变量的使用 4.1.4变量的作用域和 ...

最新文章

  1. lodop打印技巧与注意事项
  2. 华为交换机配置Telnet
  3. 关于页面之间传参时有空格,中文及点击页面后退按钮的问题
  4. 推荐五款浏览Github必备的Chrome插件
  5. python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...
  6. 蓝桥杯 ALGO-103 算法训练 完数
  7. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
  8. OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器
  9. linux进程属性,Linux进程属性及含义
  10. 使用Python实现简单的随机数字抽奖
  11. 开源BI工具对比(二):宜信 davinci
  12. Oracle imp/impdp 导入dmp文件到数据库
  13. 全国火车高铁站及车次数据爬虫(内含100W+数据)
  14. 微信小程序初级——快递查询(利用聚合数据接口开发)
  15. JSP+Servlet技术实现分页 首页 下一页 每一页显示10条页码 下一页 尾页 第页/共页 (利用PageBean实现)
  16. 成长笔记(个人心路历程)
  17. 《图形图像处理》— 使用matlab对图像进行二值化和灰度化处理
  18. Mockito的简单使用
  19. php打印n乘n沙漏形状图形,《算法笔记》3.3小节——入门模拟-图形输出
  20. proteus教程——操作内存并行扩展8255

热门文章

  1. Colab、矩池云、mistGPU几个云GPU使用心得
  2. [PHP面试题]跳槽面试必背-自己最近5年的整理(三)
  3. 小红书直播收益怎么算?有效提高直播收益的小技巧
  4. Starvis星光全彩摄像机技术
  5. 腾讯云带宽价格表(包年包月/按量计费/流量价格)
  6. 【数字信号处理】线性常系数差分方程 ( 使用递推解法求解 “ 线性常系数差分方程 “ | “ 线性常系数差分方程 “ 初始条件的重要性 )
  7. React.js学习(一):设计并实现一个“任务清单列表”
  8. STM32第一课(Keil, Type, macro)
  9. 指针游戏1 最简单的指针游戏
  10. 如何免费从网上获取全景图片