首页 > 编程语言 >学习C++第四天

学习C++第四天

时间:2023-02-10 23:01:21浏览次数:39  
标签:10 return int 第四天 C++ 学习 ++ printf main

操作符
算数操作符:+ - * / %
移位操作符:>> <<
位操作符:&--按位与 ^--按位异或 |--按位或
赋值操作符:= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反

学习C++第四天_补码

整数a
0
二进制:00000000000000000000000000000000
~a:11111111111111111111111111111111

~按(二进制)位取法,把所有二进制位的0变成1,1变成0
整数在内存中存储的是补码
一个整数的二进制表示有三种:
原码
原码符号位不变,其他位按位取反得到反码
反码
反码+1得到补码
补码
负数的计算:
-1
原码:10000000000000000000000000000001
反码:11111111111111111111111111111110
补码:11111111111111111111111111111111

正整数的原码,补码,反码相同



-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换

关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”

逻辑操作符
&& 逻辑与
|| 逻辑或

条件操作符
exp1 ? exp2 : exp3
exp1成立,exp2计算,整个表达式的结构是:exp2的结果
exp1不成立,exp3计算,整个表达式的结构是:exp3的结果

逗号表达式
exp1, exp2, exp3, …expN

下标引用、函数调用和结构成员
[] () . ->

关键字
关键字为c语言提供的,不能自己创建关键字
关键字不能做变量名
变量名不能是关键字
常见的关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signedsizeof static struct switch typedef union unsigned void volatile
关键字 typedef---类型重定义学习C++第四天_全局变量_02


关键字static:修饰局部变量的生命周期,本质上 是改变了变量的储存类型


1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数

修饰局部变量
修饰全局变量
全局变量,在其他源文件内可以被使用,是因为全局变量具有外部链接属性
但是被static修饰后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!!
static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用其他源文件不能使用!
本质上:static是将函数的外部链接属性变成了内部链接属性!(和static修饰全局变量一样!)

学习C++第四天_全局变量_03

学习C++第四天_操作符_04

学习C++第四天_操作符_05

. #define 定义常量和宏

练习代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//int main()
//{
// //int a = 9 / 2;
// //float a = 9 / 2.0;
// int a = 9 % 2;//%-取模(余数)
// printf("%d\n", a);
//
// return 0;
//}

//int main()
//{
// int a = 2;
// int b = a << 1;//左移操作符---移动的是二进制位
//
// printf("%d\n", b);
//
// return 0;
//}

//int main()
//{
// int a = 10;
// //0表示假,非0就是真
// printf("%d\n", !a);
//
// return 0;
//}

//int main()
//{
// int arr[10] = { 0 };
// printf("%d\n", sizeof(arr));//计算的是数组的总大小,单位是字节
// printf("%d\n", sizeof(arr[0]));
// int sz = sizeof(arr) / sizeof(arr[0]);
// printf("%d\n", sz);
// return 0;
//}

//int main()
//{
// int a = 0;
//
// printf("%d\n", ~a);
// return 0;
//}

//int main()
//{
// //int a = 10;
// //int b = a++;//后置++表示先使用再++,所以优先给b赋值为a=10,再把a+1
//
// int a = 10;
// int b = ++a;//前置++表示先++后使用,++a的结果会把上一步的int a=10覆盖
//
// printf("%d\n", a);
// printf("%d\n", b);
//
// return 0;
//}

//int main()
//{
// int a = (int)3.14;//强制类型转换
//
// printf("%d\n", a);
// return 0;
//
//}

//typedef unsigned int u_int;//用typedef重新定义关键字
//int main()
//{
// unsigned int num = 100;
// u_int num2 = 100;//和上一步为同一类型
//
// return 0;
//}

//void test()
//{
// int a = 1;
// a++;
// printf("%d\n", a);
//}
//int main()
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
// return 0;//结果为10个2
//}

//void test()
//{
// static int a = 1;//static修饰是表示为静态环境,不销毁上一步结果
// a++;
// printf("%d\n", a);
//}
//int main()
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
// return 0;//结果为2-11
//}

//extern int g_val; //exter 声明外部符号的
//
//int main()
//{
// printf("%d\n", g_val);
//
// return 0;
//}

//#define MAX 1000

#define ADD(x, y) ((x)+(y))

int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);

sum = 10 * ADD(2, 3);
printf("sum = %d\n", sum);

return 0;

}

标签:10,return,int,第四天,C++,学习,++,printf,main
From: https://blog.51cto.com/u_15957050/6049784

相关文章

  • 小梅哥课程学习——(5)(设计一个以不同频率闪烁的4个LED灯,闪烁时间分别位0.1s,0.2s,0.3
    //单个LED灯以一秒闪烁的源代码//利用单个的闪烁源代码,来实例化不同频率闪烁的灯moduleled_run8(clk,reset_n,led);inputclk;inputreset_......
  • Typora以及Markdown学习
    Typora以及Markdown学习标题n级标题一级标题为#+[空格]+标题或者ctrl+1二级标题则为``##+[空格]+标题`或者ctrl+2后续几级标题依此类推...最多支持6级标题字体粗体......
  • C++面向对象学习记录(持续更新中)
    前言C++和C语言的区别C++是C语言的超集,它在C语言的基础上新增了许多面向对象编程的特性,如类、对象、继承、多态等。因此,C++语言比C语言更加灵活、强大。另外,C++还支持模......
  • C++多线程
    语言级别的多线程,优点是跨平台底层仍然是调用系统API(识别不同系统,调用不同的系统调用)创建线程头文件threadthread的构造函数:thread()noexcept//构造线程对象,不执行......
  • 深度学习炼丹-数据标准化
    前言一,Normalization概述1.1,Normalization定义1.2,什么情况需要Normalization1.3,为什么要做Normalization1.4,DataNormalization常用方法1.5,代码实现二,norm......
  • 关于Java基础-第四天的复习总结
    1.数组1.1什么是数组【理解】数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2数组定义格式【记忆】1.2.1第一种数据类型[]数组名示例:int[]......
  • Dev-C++ 安装教程
    下载地址:https://sourceforge.net/projects/orwelldevcpp/下载完成,在指定的下载位置有一个安装包:双击开始安装程序安装是默认英文安装即可,在启动后可以配置为简体......
  • 联邦学习论文阅读笔记04 Measure Contribution of Participants in Federated Learnin
    这篇论文提出了两种贡献测量的方法,水平FL的删除方法和垂直FL的Shapley值分组特征法。水平FL:特征相同样本不同删除方法:每次删除某一个参与者重新训练,贡献=原模型-新模型......
  • 感知机:学习算法之对偶形式【统计学习方法】
    概述在原始形式中,若(x_i,y_i)为误分类点,可如下更新参数:$$w\leftarroww+\etay_ix_i;\quadb\leftarrowb+\etay_i$$假设初始值$w_0=\boldsymbol0,b_0=0$,对误分类点$(x_......
  • python的学习之路之day1
    2023.2.10DAY1python基础课程李洋老师上课顺序:昨日回顾,今日详解主要课程内容介绍python基础网址:https://www.yuque.com/liyangqit/lb35ya/nkp81x面向对象网络和......