IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Day4 初识C语言 12.15 -> 正文阅读

[C++知识库]Day4 初识C语言 12.15

对本星期二的课笔记进行一个总结。

?目录

三目运算符(也叫条件操作符)

逗号表达式

补充:

单目操作符

关系操作符和逻辑操作符

?真与假

关键字(不能自己创建)

typedef关键字:

register寄存器关键字:

static关键字(修饰变量与函数)

sum运算

宏的定义

复合表达式

!=EOF

!感叹号还可以用来翻转一个等式的真假。

三目运算符(也叫条件操作符)

格式为

exp1?exp2:exp3

#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d"),&a,&b,&c);
    printf("%d",(a>b?a:b)>c?(a>b?a:b):c);
    return 0;
}

其中a>b?a:b表示a与b比较大小,若a>b则整段输出a到a。否则输出b到b。

后面即为a>c?a:c,即a与c比大小,输出较大的那个到%d中。

逗号表达式

int a =3;
int b =20;
int c =0;
int d =(a-=3,b+=a,c=a-b,b=a-4);
//int d =后面括号内的就是逗号表达式。
//a-=3得出a=0,b+=a也就是20加0还是10,c后面就成了-20,b得出-4。
//因此d的值为-4。

补充:

int arr[10] = {0};
arr [5] = 9;
//其中[]为下标引用操作符,操作数为数组名和下标。

int m = get max (3,5);
//其中()为函数调用操作符,操作数为函数名和3,5。

单目操作符

!
-
+
sizeof (为操作符中的运算符,并不是函数。)
~
++
--
强制类型转换

其中强制类型转换的格式为:

int main()
{
    int a = 3.14;  //这里改成int a = (int) 3.14;就可以把3.14强制转换为int类型。
    printf("%d",a);

    return 0;
}

其中++和--有以下概念:
?

int a = 10;
int b = ++a;
int a = 10;
int b = a++;

//++a为前置++,先++后使用,打印出来a,b都为11。
//a++为后置++,先使用后++,打印出来a=11,b=10。

关系操作符和逻辑操作符

//关系操作符:
>
>=
<
<+
!=
==
//逻辑操作符:
&&
||
int a = 3;
int b = 4'
if(a=3)&&(b=4)//两者都要为真才使用if。

if(a=3)||(b=4)//两者一个为真即可使用if。

?真与假

C语言中有真与假。0代表假,1代表真。等式也存在真假。

#include<stdio.h>
int main()
{
    int a=5,b=3,c=8;
    int d=(a>b),e=(b>c);     //a>b表达式为真,b>c表达式为假
          printf("%d %d",d,e);  //那么程序的运行结果是什么呢
    return 0;
}

打印出来d值为1,e值为0。

int a = 0;
if(a==5)   //if判断值时必须用等号,一个等号判断真假,两个才是判断相等与否。
{
    printf("hehe\n");

}

注意:当if(a=0)的时候,此时a=0这一赋值表达式为假(非零即真),就不会执行后续的else语句。

若if(a=1)的时候,就可以执行后续else语句。

关键字(不能自己创建)

typedef关键字:

unsignned int num = 10;
typedef unsignned int uint
unit num2 = 10;

//现在第一句和第三句的意思完全一致了,typefed相当于把unsigned int起了一个别名。

register寄存器关键字:

?register 关键字的采用范围:
1. 位于局部的,
2. 不会被写入的,
3. 读取频繁的,
4. 不会大规模使用的。

register修饰的变量,不能取地址(因为已经放在寄存区中)。

#include <stdio.h>
#include <windows.h> 
int main() 
{ 
	register int a = 0; 
	printf("&a = %p\n", &a);
	//编译器报错:错误 1 error C2103: 寄存器变量上的“&” 
	//注意,这里不是所有的编译器都报错,目前我们的vs2013是报错的。  
	system("pause"); 
	return 0; 
}
int num = 10;           //4个字节。
register int num2 = 20;  //建议将20放在寄存器中。

?register关键字把数据存储到寄存器中来获取更快的计算速度。

static关键字(修饰变量与函数)

可以修饰全局变量,局部变量,函数。

void test ()
{
    int a = 5;
    a++
    printf("%d",a);
}
int main()
{
    int i = 0;
    while(i<10)
    {    test();
         i++;

    }

    return 0;
}
//此时输出的为6,6,6,6,6,6,6,6,6,6
//但是如果变成了static int a =5;
//你们就可以打印成6,7,8,9,10,11,12,13,14,15

因为static修饰的局部储存在静态区了。

内存有栈区,堆区和静态区。原本的a = 5存放于栈区。但是static修饰变量实际上是改变了变量的储存位置,把它放到了静态区,导致变量出了作用于仍在,生命周期没有结束。

静态区一般储存的静态变量和全局变量。栈区都是存放的局部变量和函数的参数。堆区是用于动态内存开辟的。

sum运算

格式为如下:

#include<stdio.h>

int sum(int x,int y,int z)
{
    int c;
    c = x+y+z;
    return c;
}                   //函数声明。


int main()
{
    int a;
    int b;
    int c;
    
    scanf("%d" "%d" "%d",&a,&b,&c);  //scanf输入小数时把int改为float,scanf的%d改为%f,
    printf("%d",sum(a,b,c));         //printf的%d改为%.2f就可以。
   
    return 0;
}

或者,a,b,c有具体值时。

int main()
{
    int a = 10;
    int b = 20;
    int c = 30;
    int sum = 0; //初始化。

    printf("%d",sum);
    
    return 0;
}

宏的定义

#include<stdio.h>
int Max(int x, int y)
{
    if(x>y)
        return x;
    else
        return y;
}

#define Max(x,y) (x>y?x:y)
int main()
{
    int a = 10;
    int b = 20;
    int max = Max(a,b);
    printf("max=%d\n",Max);

    return 0;
}

先抄写一遍,只是遇到了这么个解法,并没有深入了解。

复合表达式

#include<stdio.h>
int main()
{
    if(4<2<3)    
        printf("ha");
    if(4>2>3)  
        printf("ha");
    if(4<3>2)   
        printf("ha");

    return 0;
}

首先第一个4<2为假,输出0。0<3为真,输出1。

同理可得第二个第三个输出0。

其中<和>的结合性为从左到右,即从左往右计算。=的结合性为从右到左,但是=的优先级要低于<>。

#include<stdio.h>
int main() 
{
	int a, b;
	    if (a = b = 4)      
		    printf("%d %d ",a,b);
	    if (a = 5 > 3)    
		    printf("%d", a);
	return 0;
}

第一个printf输出为4,4。而第二个printf输出为1。因为5>3等式的值为真也就是1。

!=EOF

#include<stdio.h>
int main()
{
    int a=0;
    while(scanf("%d",&a)!=EOF);//可以进行多行输入。
    if(a>=140)
    {
        printf("Genius\n");
    }
    return 0;
}

//因为scanf函数在读取失败后回返回到EOF,因此需要写上!=EOF来排除。
//EOF全称为end of file,是文件的结束标志。

!感叹号还可以用来翻转一个等式的真假。

int x = 5;
!x即为假。
int y = 0;
!y即为真。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:29:31  更:2021-12-16 17:30:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:01:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码