21.12.19初识C语言
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语言相关推荐
- 21.11.19 贝卡 宝贝制造者 类星体(手雷) 21.11.26 卢西恩的召唤 惊雷AAA 永田(手雷) 21.12.03 绝对征服 嗜血野兽 传输(手雷) 21.
21.11.19 贝卡 宝贝制造者 类星体(手雷) 21.11.26 卢西恩的召唤 惊雷AAA 永田(手雷) 21.12.03 绝对征服 嗜血野兽 传输(手雷) 21.12.10 垂死之息 某人的财产 ...
- 【跃迁之路】【674天】程序员高效学习方法论探索系列(实验阶段431-2018.12.19)...
@(收集箱(每日一记,每周六整理))专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) ...
- 【历史上的今天】10 月 12 日:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 10 月 12 日,历史上的这一天,哥伦布发现了"新大陆",在他发现的这片美洲上 ...
- 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定 ...
- 《21天学通C语言(第6版•修订版)》一导读
前 言 21天学通C语言(第6版•修订版) 本书旨在引导读者在21天内学通C语言编程.虽然有来自诸如C++.Java和C#的激烈竞争,但很多初学编程者还是会选择C语言.正如第1天课程介绍的原因,选择C ...
- c生万物之初识c语言
c生万物之初识c语言 前言: 1.初学习了c语言,感觉还是很不错的,哈哈~~.下面让我来分享下我目前对c的认识 题外:后面有关于c语言风格培养的<高质量的c-c++编程>PDF版链接,有需 ...
- 《21天学通C语言(第7版)》一2.2 程序的组成部分
本节书摘来自异步社区<21天学通C语言(第7版)>一书中的第2章,第2.2节,作者 [美]Bradley Jones , Peter Aitken , Dean Miller,更多章节内容 ...
- 安徽科技学院 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: ...
- 从零开始C语言精讲篇1:初识C语言
文章目录 前言 一.什么是C语言(了解) 二.第一个C语言程序 三.数据类型 四.变量.常量 4.1变量 4.1.1定义变量的方法 4.1.2变量的分类 4.1.3变量的使用 4.1.4变量的作用域和 ...
最新文章
- lodop打印技巧与注意事项
- 华为交换机配置Telnet
- 关于页面之间传参时有空格,中文及点击页面后退按钮的问题
- 推荐五款浏览Github必备的Chrome插件
- python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...
- 蓝桥杯 ALGO-103 算法训练 完数
- vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
- OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器
- linux进程属性,Linux进程属性及含义
- 使用Python实现简单的随机数字抽奖
- 开源BI工具对比(二):宜信 davinci
- Oracle imp/impdp 导入dmp文件到数据库
- 全国火车高铁站及车次数据爬虫(内含100W+数据)
- 微信小程序初级——快递查询(利用聚合数据接口开发)
- JSP+Servlet技术实现分页 首页 下一页 每一页显示10条页码 下一页 尾页 第页/共页 (利用PageBean实现)
- 成长笔记(个人心路历程)
- 《图形图像处理》— 使用matlab对图像进行二值化和灰度化处理
- Mockito的简单使用
- php打印n乘n沙漏形状图形,《算法笔记》3.3小节——入门模拟-图形输出
- proteus教程——操作内存并行扩展8255
热门文章
- Colab、矩池云、mistGPU几个云GPU使用心得
- [PHP面试题]跳槽面试必背-自己最近5年的整理(三)
- 小红书直播收益怎么算?有效提高直播收益的小技巧
- Starvis星光全彩摄像机技术
- 腾讯云带宽价格表(包年包月/按量计费/流量价格)
- 【数字信号处理】线性常系数差分方程 ( 使用递推解法求解 “ 线性常系数差分方程 “ | “ 线性常系数差分方程 “ 初始条件的重要性 )
- React.js学习(一):设计并实现一个“任务清单列表”
- STM32第一课(Keil, Type, macro)
- 指针游戏1 最简单的指针游戏
- 如何免费从网上获取全景图片