重温c语言之,7天开整,就是随便的写写,第二天
一:操作符
除法:
如果都是整数,除数,被除数都是整数,那么结果:就是整数的商(没有小数部分的),例如:7/2=3;
如果除数或者被除数其中一个是浮点数,那么结果就是(条件是:能除尽的,并且小数在基础数据类型包含下的)完整的商(包含小数部分的):例如:7/2.0=3.500000;
如果想要在printf中,想要取小数点后1位,基本类型是:float----%.1f;如果是double----%.1lf,其他的就是类似(什么小数点后几位什么的,这个数字就是变换着来就行了)
取模:
取模操作符的两端都是整数
逗号表达式:
逗号隔开的一串表达式,特点:从左向右的依次计算,整个表达式的结果是最后一个表达式的结果,
例如:int a=10;int b=20;int c=0;int d=(c=a-2,a=b+c,c-3); d=5
二:关键字
typedef:
1.用于一个已有名字的数据类型,使其更新一个新的名字,让代码变得更加的简介,例如:在头部写上:typedef unsigned int unit;那么在main里面
unsigned int num1; 与unit num2;是相同的类型,只不过名字不相同,但是效果一样的
2.用于结构体上面,把结构体命一个新的名字,例如:
在main里面 :struct Node n;与 Node n2;的效果是一样的
static:
1.修饰局部变量
//在不使用static的时候
#include<stdio.h>
void test(){
int a=1;
a++;
printf("%d ",a);
}
int main(){
int i=0;
while(i<10){
test():
i++;
}
}
这个的结果就是:2 2 2 2 2 2 2 2 2 2
//在使用static的时候呢
#include<stdio.h>
void test(){
static int a=1;
a++;
printf("%d ",a);
}
int main(){
int i=0;
while(i<10){
test():
i++;
}
}
这个的结果就是:2 3 4 5 6 7 8 9 10 11
为什么会有这么大的差距呢,就是因为static 存在,static修饰局部变量的时候,局部变量出了作用域,不会销毁,本质上就是,static修饰局部变量的时候,该变量了变量的存储位置(由局部变量----->成为静态变量)。影响了变量的生命周期,生命周期变长,变成和程序的生命周期一样
| 栈区:局部变量 |
| 堆区: |
| 静态区:静态变量 |
2.修饰全局变量
static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他的源文件(.c)就不能再次使用这个全局变量,例如:
test1.c
int num=10;
test2.c
#include<stdio.h>
#include"test1.c"
int main(){
print("%d\n",num);
return 0;
}
这个结果就是:10
如果变成static修饰的全局变量(num)时,这个全局变量(num)就是从外部链接属性变成了内部链接属性,test2.c这个源文件不能使用test1.c的内部变量了,例如:
test1.c
static int num=10;
test2.c
#include<stdio.h>
#include"test1.c"
int main(){
print("%d\n",num);
}
结果:报错,原因,num这个变量没有定义且不存在
3.修饰函数
这个与修饰全局变量差不多,函数由原本的外部链接属性变成了内部链接属性
重温c语言之,7天开整,就是随便的写写,第二天的更多相关文章
- C语言的几种取整方法
C语言的几种取整方法 来源:http://blog.sina.com.cn/s/blog_4c0cb1c001013ha9.html 1.直接赋值给整数变量.如: int i = 2.5; 或 i = ...
- ubuntu语言支持打不开,点了没反应
ubuntu语言支持打不开,点了没反应 sudo dpkg-reconfigure locales
- 重温C语言小感
这周对我感触比较大的就是重温了下C语言,当然重点还是放到了指针那块,一看到指针就想到了链表,还有那个 指针申明,“函数指针”,“指针函数”, “使用指针实现数组降维数”,还有就是大学初学编程的点滴. ...
- Go语言类型(布尔、整型、数组、切片、map等)
1.基本类型 布尔类型:bool 注意:布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换. 整型:int8.byte(uint8).int16.int.uint.uintptr int.ui ...
- [日常] Go语言圣经--作用域,基础数据类型,整型
go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...
- C语言正整数除法向上取整
在网上发现一个简单的向上取整方法: 这里我们用<>表示向上取整,[]表示向下取整,那么怎么来表示这个值呢? 我们可以证明: <N/M>=[(N-1)/M]+1 (0< ...
- 重温C语言(1)----计算算术表达式的值
<C程序设计语言>练习题 5-10 编写程序 expr,计算从命令行输入的逆波兰表达式的值,其中每个运算符或操作数用一个单独的参数表示.例如,命令 expr 2 3 4 + * 计算表达式 ...
- 计算机二级-C语言-字符数字转化为整型数字。形参与实参类型相一致。double类型的使用。
//函数fun功能:将a和b所指的两个字符串分别转化成面值相同的整数,并进行相加作为函数值返回,规定只含有9个以下数字字符. //重难点:字符数字转化为整型数字. #include <stdio ...
- C语言程序设计:现代方法(第2版)第二章全部习题答案
前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...
- 【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明
内容简介 1.课程大纲 2.第一部分第四课第二章:变量的世界之变量声明 3.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布 ...
随机推荐
- SMU Summer 2023 Contest Round 13
SMU Summer 2023 Contest Round 13 A. Review Site 我们总是可以把差评放到另一个服务器,好评和中立放另一个,这样最多投票数就是好评与中立数 #include ...
- docker高级篇2-分布式存储之三种算法
面试题: 1~2亿条数据需要缓存,请问如何设计这个缓存案例? 答:单机单台100%是不可能的.肯定是分布式缓存的.那么用Redis如何落地? 一般有三种方案: 哈希取余分区:一致性哈希算法分区:哈希槽 ...
- HBuilder X在4K显示器怎么设置HBuilderX窗口本身的字体大小
在使用HBuilder X编辑器的时候,使用笔记本自身的显示器,编辑器窗口本身的字体大小都正好,但是将HBuilder X编辑器用在外接显示器(高清)或者4K显示器上的时候,就不行了.怎么解决呢? 在 ...
- springCloud allibaba 微服务引言
微服务篇: springcloud 常见组件有哪些 nacos 的服务注册表结构是怎样的 nacos 如何支撑阿里内部数十万服务注册压力 nacos 如何避免并发读写冲突问题 nacos 和eurek ...
- 8.18域横向smb&wmi明文或hash传递
知识点 windows 2012以上版本默认关闭wdigust,攻击者无法从内存中获取明文密码: Windows2012以下版本如安装KB287199补丁,同样也无法从内存中获取明文密码: 解决方法: ...
- PHP 程序员学会了 Go 语言就能唬住面试官吗?
大家好,我是码农先森. 唬住了 50k ,唬不住就 5k .这句话一直是 PHP 程序员之间相互吹捧.吹牛逼的笑点,每次面试过后都会挠挠头上仅剩的几根头发,回想自己是否吹牛逼会过了头.我经常在微信程序 ...
- 小tips:CSS实现0.5px的边框的两种方式
方式一 <style> .border { width: 200px; height: 200px; position: relative; } .border::before { con ...
- vuejs怎样封装一个插件(以封装vue-toast为例扩展)
插件介绍 插件通常会为 Vue 添加全局功能.插件的范围没有限制--一般有下面几种: 1.添加全局方法或者属性,如: vue-custom-element 2.添加全局资源:指令/过滤器/过渡等,如 ...
- nuxt(搁置)
https://nuxt.com.cn/docs/getting-started/installation 开始使用 全栈Web应用和网站 Nuxt使用约定和一套规范的目录结构来自动化重复的任务,让开 ...
- 实战合集 | I/O 2021 Flutter 研讨会
2021 年的 Google I/O 大会已圆满闭幕,本次大会带来了诸多关于各项谷歌开发技术产品的最新更新.在此次 I/O,Flutter 发布了 2.2 版本,包括 Web 版的增强.更多 Mate ...