黑马程序员——C语言基础 scanf函数 基本运算 三目运算符
Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
(一下内容是对黑马苹果入学视频的个人知识点总结)
(一)scanf函数
1> 简单介绍一下scanf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量
2>scanf函数用法
1)简单的用法
#include <stdio.h> int main()
{
// 定义一个变量,用来保存用户输入的整数
int number; // scanf函数只接受变量的地址
// scanf函数是一个阻塞式的函数,等待用户输入
// 用户输入完毕后,就会将用户输入的值赋值给number变量
// 函数调用完毕
scanf("%d", &number); printf("用户输入的值是%d\n", number); return ;
}
① scanf函数时,会等待用户的键盘输入,并不会往后执行代码。scanf的参数是"%d",说明要求用户以10进制的形式输入一个整数。这里要注意,scanf的第2个参数传递的不是变量,而是变量的地址,&是C语言中的一个地址运算符,可以用来获取变量的地址
② 输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,scanf函数会将输入的值赋值给变量
2)其他用法
一次性输入多个数值,并且以某些符号隔开例如一下一段程序
int num1, num2;
scanf("%d#%d", &num1, &num2);
但是需要注意不可以用换行 \n 隔开 ,另外输入的时候也要和中间隔开的符号隔开
(二)基本运算
1)算术运算
1> 加法运算+
除开能做加法运算,还能表示正号:+5、+90
2>减法运算-
除开能做减法运算,还能表示符号:-10、-29
3> 乘法运算*
注意符号,不是x,而是*
4> 除法运算/
① 注意符号,不是÷,也不是\,而是/
② 整数除于整数,还是整数。1/2的值是0,这个并不是二分之一
5> 取余运算%
① 两个整数相除之后的余数
② %两侧只能是整数
③正负性取决于%左侧的数值
2)注意点
1>自动类型转换
自动将大类型转换为了小类型,会丢失精度
2>自动类型提升
int b = 10.5 + ;
将右边的10提升为了double类型
3> 强制类型转换
4> 运算顺序
有不同的优先级 不同的结合性
#include <stdio.h>
int main()
{
/*1.算数运算符的基本使用
int a = 10 + 1 + 2 - 3 + 5; int b = -10; int c = 10 * b; int d = 10 / 2; // 取余运算(模运算)
// %两边都是整数
// %取余结果的正负性只跟%左边的数值有关
int e = 10 % -3;
printf("%d\n", e);
*/ /*
// 自动类型转换(double->int)
int a = 10.8; // 强制类型转换(double->int)
int b = (int) 10.5;
printf("%d\n", a);
*/ // 自动类型提升(int->double)
double c = 10.6 + ; double d = / ; double e = (double)/; printf("e的值是%f\n", e); return ;
}
(三)赋值运算
赋值运算比较简单 分为简单赋值与复合赋值
(四)自增自减
++自增运算符 ——自减运算符 注意一下++a和a++的区别(前面加完后运算后面的运算完再加)
(四)sizeof
1> 用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
2>sizeof的基本形式
①sizeof( 变量\常量 )
②sizeof(数据类型)
#include <stdio.h> int main()
{
int a = ;
int size = sizeof(char); printf("size=%d\n", size); return ;
}
(五)关系运算
其实就是判断真假 如果是真这为1否则为0.关系运算符有很多他们的优先级是不同的,关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者。
(六)逻辑运算
1)逻辑与
运算结果
只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”
3> 运算过程
总是先判断条件A是否成立,如果条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”,如果条件A不成立,就不会再去判断条件B是否成立:因为条件A已经不成立了,不管条件B如何,“条件A && 条件B”的结果肯定是0,也就是“假”
2)逻辑或
1>使用格式
“条件A || 条件B”
2> 运算结果
当条件A或条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。
3> 运算过程
总是先判断条件A是否成立,如果条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A || 条件B”的结果肯定是1,也就是“真”.如果条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”
3)逻辑非
(七)三目运算符
三目运算符 条件 ? 数值1 : 数值2
int a = ! ? : ;
黑马程序员——C语言基础 scanf函数 基本运算 三目运算符的更多相关文章
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 黑马程序员——C语言基础 函数
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...
- 黑马程序员——C语言基础 指针
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)指针 首先指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...
- 黑马程序员——C语言基础 char字符 数组
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)char类型 1)存储细节 ASCII单字节表(双字节GBK\GB2 ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- 黑马程序员——C语言基础 字符串
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)字符串 1>字符串是由多个字符组合在一起形成的 2>初始 ...
随机推荐
- 转:switch内部的变量定义问题(goto类似)
自我总结:(之前查过goto和switch的资料但是一直没有搞懂,直到今天看到这个讨论才懂了) 1 int a; 是个描述,而不是个命令,只是说明我需要空间,编译器会保证在相应的作用域之中这 ...
- D3.js 交互式操作
与图表的交互,指在图形元素上设置一个或多个监听器,当事件发生时,做出相应的反应. 一.什么是交互 交互,指的是用户输入了某种指令,程序接受到指令之后必须做出某种响应.对可视化图表来说,交互能使图表更加 ...
- Python Paramiko模块安装和使用
1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...
- c++ string 与 char 互转 以及base64
c++ string 与 char 互转 很简单如下 ] = {'A','B','C','D','E'}; printf("%s\n",bts); //char to string ...
- jmeter笔记5
性能测试是任何分布式或Web应用程序测试计划的重要组成部分.在计划和开发周期中进行性能评价,可以保证交付给客户的应用程序满足客户对于高负载.可用性和可伸缩性的要求.提前确定软件的负载限制可以为适当地进 ...
- Roman to Integer [LeetCode]
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- Git从远程分支创建本地分支
git fetch origin master:temp 这句命令的意思是:将远程origin仓库的master分支下载到本地,并新建一个分支temp.
- OC self和super
在OC中 1 self是一个指针,在每一个方法中都有一个self指针 2 self可以出现在所有的方法中(对象方法和类方法),不能在函数中 3 self指向调用者.(谁调用它就指向谁) 4 可以使用s ...
- 读书笔记1: 资源地址—通用资源的标识符(URI)
例子: https://msdn.microsoft.com/zh-cn/library/system.uri(v=vs.110).aspx 解释:协议://主机[:端口号]/绝对路径[参数] 对应的 ...
- Tomcat数据库连接池的配置方法总结
Tomcat数据库连接池的配置方法总结 数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标 ...