重温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.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布 ...
随机推荐
- 比对xls文件
使用bat运行diff-xls.js文件 bat代码 @echo off Cscript "路径\diff-xls.js" %1 %2 JS代码 // extensions: xl ...
- 将整个工程的GBK转为utf-8格式
eclipse将整个工程转为utf-8时原先中文注释会变为乱码,13年时写了个脚本将整个文件的java以及配置文件转为utf-8格式,下面是代码 package com.code.pd; import ...
- 别再被坑了! JavaScript类型检测的最佳实践
别再被坑了! JavaScript类型检测的最佳实践 在 JavaScript 中,我们经常需要判断一个变量的类型.这个需求在编程中非常常见,因为不同类型的数据会影响到我们的代码逻辑. JavaScr ...
- 性能、成本与 POSIX 兼容性比较: JuiceFS vs EFS vs FSx for Lustre
JuiceFS 是一款为云环境设计的分布式高性能文件系统.Amazon EFS 易于使用且可伸缩,适用于多种应用.Amazon FSx for Lustre 则是面向处理快速和大规模数据工作负载的高性 ...
- react + vite
Vite 和 Yarn都比较新的技术 Ref: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-react-proje ...
- .NET 8 微软免费开源的 Blazor UI 组件库
前言 .NET 8 的发布,微软推出了官方免费且开源的 Blazor UI 组件库 -- Fluent UI Blazor. 组件库提供了Web应用程序所需的工具,确保应用程序能够与 Microsof ...
- C++17新特性探索:拥抱std::optional,让代码更优雅、更安全
std::optional 背景 在编程时,我们经常会遇到可能会返回/传递/使用一个确定类型对象的场景.也就是说,这个对象可能有一个确定类型的值也可能没有任何值.因此,我们需要一种方法来模拟类似指针的 ...
- Asp.net core 学习笔记之 authen + autho + oidc + oauth + spa 第九篇 (external login)
External login 就是指通过 Google, Microsoft, Facebook account 做登入. https://docs.microsoft.com/en-us/aspne ...
- 从零开始搭建一个LoRaWAN基站
先说两句 SX1301/SX1302是semtech公司推出的基站端射频基带芯片,其与SX127x/SX126x的主要区别在于: 只是个基带芯片,使用时需要加射频前端(SX125x/SAW/...) ...
- @RestController和@Controller的区别
@RestController 和 @Controller 是Spring框架中用于定义控制器(Controller)的两个非常重要的注解,它们都用于处理HTTP请求,但它们之间存在一些关键的区别. ...