黑马程序员——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>初始 ...
随机推荐
- 树 - 从零开始实现by C++
参考链接:数据结构探险之树篇
- Material Design Button 样式
132down voteaccepted I will add my answer since I don't use any of the other answers provided. With ...
- iOS 使用Keychain 保存 用户名和密码到 本地
iOS 使用Keychain 保存 用户名和密码到 本地 之前曾把一些简单的数据保存在了plist,文件,及NsuserDefault里面, 但是如果要保存密码之类的,保存在本地就很不安全了: 但是利 ...
- Linux命令行下编译Android NDK的示例代码
这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究 Android ND ...
- js实现页面跳转
js方式的页面跳转1.window.location.href方式 <script language="javascript" type="text/java ...
- Spring表达式语言 之 5.4在Bean定义中使用EL(拾伍)
5.4.1 xml风格的配置 SpEL支持在Bean定义时注入,默认使用"#{SpEL表达式}"表示,其中"#root"根对象默认可以认为是Applicati ...
- NKW
JavaScript几种原生函数 - 博客频道 - CSDN.NEThttp://blog.csdn.net/h378588270/article/details/12948163 .json_百度搜 ...
- Gradle 教程:第一部分,安装【翻译】
原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-setup/ 在这篇教程里,我们将主要讲解如何在我们 ...
- 用java实现冒泡排序法
一.基本思路: 冒泡排序是一种简单的交换类排序.其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移.每经过一趟排序后,关键字值最大的元素将移到末尾,此时 ...
- webstorm搭建node服务器
前言,搭建服务器,必须有node.js环境(吐槽:本来就是用node搭建的(⊙o⊙)…) 下载node.js 网址 https://nodejs.org/en/ 先新建项目: 这里选择Node.js ...