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++知识库 -> C语言の学习笔记【3】 -> 正文阅读

[C++知识库]C语言の学习笔记【3】

单目操作符++
可分为前置++和后置++
1、前置++,变量先++(一般情况下+1)完以后再运算
2、后置++,变量先运算完以后再++(一般情况下+1)

单目操作符--

?可分为前置–和后置–
? ? ? 1、前置- -,变量先- -(一般情况下-1)完以后再运算
? ? ? 2、后置- -,变量先运算完以后再- -(一般情况下-1)
算数操作符

  1. 加、减、乘很简单,和平常数学中运算规则相同。
  2. /(除)这个操作符需要注意的是:除的时候如果’/’两边只要有(一个或两个)浮点数,采用的是浮点型除法,若’/’两边都是整型,则采用的是整型除法。
  3. %这个操作符两边的数只能是整数,它返回的是整除之后的余数

移位操作符

移位操作符作用的对象是一个数的补码;
? ? 1.对于左移:左边抛弃,右边补0;
? ? 2.对于右移:右边抛弃,左边补原来的符号位(采用算术移位);
? ? 3.对于’>>’操作符,分为两种移位规则:一种逻辑移位,另一种是算术移位,
? ? 4.a.逻辑移位规则是右边抛弃,左边最高位直接补0,不考虑之前数的符号位。
? ? ? ?b.算术移位规则是右边抛弃,左边最高位补和之前数相同的符号位。而目前编译器通常采用的是算术移位规则。
赋值操作符

?复合操作符

用复合操作符可以使代码更简洁?

单目操作符

1. sizeof操作符计算的是变量(类型)所占空间的大小,是按字节来计算,重要的是,sizeof (a+b)里面的表达式不参与计算,若a,b都是int行类型,其结果依然是4;
2. 当数组作为参数为函数传参时,由于数组要发生降级,其会降级为一个指针,如果此时在一个函数中sizeof计算数组的大小是不可以的,其计算的是数组降级为指针的大小(4个字节),所以,若函数要得到一个数组的大小,应该在主函数中计算。
3. 对于前置++或 - -,先操作,再使用,对于后置++或 - -,先使用,再操作。
关系操作符

这些关系操作符,比较简单,不多说,但需要注意,不要将等于(==)写成赋值操作(=)。

?逻辑操作符

不同与按位与和按位或。

条件操作符

1.常见关键字

char      声明字符型变量        1
short     声明短整型变量        2
int       声明整型变量          4
long      声明长整型变量        4
double    声明双精度变量        4
float     声明单精度变量        8

signed    声明有符号类型变量
unsigned  声明无符号类型变量

struct    声明结构体变量
union     声明联合类型
enum      声明枚举类型

switch    用于开关语句
case      开关语句分支
default   开关语句中的“其他”分支

auto      声明自动变量,缺省时编译器默认为此
const     声明只读变量
static    声明静态变量
register  声明寄存器变量
volatile  说明变量在程序执行中可被隐含的改变
typedef   用于给数据类型重命名
extern    声明变量是在其他文件正声明(也可以看做是引用变量)
return    子程序返回语句(可以带参数,也可不带参数)
void      声明函数无返回值或无参数,声明空类型指针
sizeof    计算对象所占内存空间大小

break     跳出当前循环
continue  结束当前循环,开始下一轮循环

do        循环语句的循环体
while     循环语句的循环条件
if        条件语句
else      条件语句否定分支(与 if 连用)
for       一种循环语句(可意会不可言传)
goto      无条件跳转语句

2.常用语句

  1. <1> if ? ? ?语句
  2. //非0为真 0为假
  3. //如果表达式的结果为真,则语句1执行,否则表达式2行。
  4. //可嵌套使用。else可悬空。
  5. 例:
  6. if(表达式)
  7. ? ? 语句1;
  8. else
  9. ? ? 语句2;
  10. ----------------------------------------------
  11. ***拓展: 浮点数的比较 指针的比较?
  12. ----------------------------------------------
  13. <2> switch ?语句
  14. //switch语句也是一种分支语句。常常用于多分支的情况。可嵌套。
  15. //switch case default 常常连用
  16. //当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。
  17. 例:
  18. #include <stdio.h>
  19. int main()
  20. ?{
  21. ? ?int day = 0;
  22. ? ?switch(day) //星期
  23. ? ?{
  24. ? ? ?case 1:
  25. ? ? ?case 2:
  26. ? ? ?case 3:
  27. ? ? ?case 4:
  28. ? ? ?case 5:
  29. ? ? ? ? ? ? printf("学习时间\n");
  30. ? ? ? ? ? ? break;
  31. ? ? default:
  32. ? ? ? ? ? ? printf("周末休息\n");
  33. ? ? ? ? ? ? break;
  34. ? }
  35. ? ? return 0;
  36. --------------------------------------------
  37. <3> goto ? ?语句
  38. //最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环。这种情况使用break是达不到目的的。break只能从最内层循环退出到上一层的循环。
  39. //还可以实现循环 不建议使用 其打破原有的程序语句顺序 不易优化
  40. <4> 循环语句
  41. ******for******
  42. //for(表达式1;表达式2;表达式3)
  43. //循环语句;
  44. **表达式1为初始化部分,用于初始化循环变量的。
  45. **表达式2为条件判断部分,用于判断循环时候终止。
  46. **表达式3为调整部分,用于循环条件的调整。
  47. 例:
  48. #include <stdio.h>
  49. int main()
  50. {
  51. ? ?int i = 0;
  52. ? ?for(i=1; i<=10; i++)
  53. ? ?{
  54. ? ? ?printf("%d ",i);
  55. ? ?}
  56. ? ?return 0;
  57. }
  58. ******while******
  59. //while(表达式)
  60. //循环语句;
  61. 例:
  62. #include <stdio.h>
  63. int main()
  64. ?{
  65. ? ?int i = 1;
  66. ? ?while(i<=10)
  67. ? ? {
  68. ? ? ? printf("%d ", i);
  69. ? ? ? i = i+1;
  70. ? ? }
  71. ? ?return 0;
  72. }
  73. ******do--while******
  74. //do
  75. //循环语句;
  76. //while(表达式)
  77. 例:
  78. #include <stdio.h>
  79. int main()
  80. {
  81. ? ? int i = 10;
  82. ? ? do
  83. ? ? ?{
  84. ? ? ? printf("%d\n", i);
  85. ? ? ?}while(i<10);
  86. ? ? return 0;
  87. }

附学习代码

?
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/*
int main()
{
    printf("     **\n");
    printf("     **\n");
    printf("************\n");
    printf("************\n");
    printf("    *  *\n");
    printf("    *  *\n");

    return 0;
}
*/
int main()
{
    printf("     **     \n");
    printf("     **     \n");
    printf("************\n");
    printf("************\n");
    printf("    *  *    \n");
    printf("    *  *    \n");

    return 0;
}




#include <stdio.h>

int main()
{
    //输入
    int x = 0;
    int y = 0;
    scanf("%d", &x);

    //计算
    if (x < 0)
        y = 1;
    else if (x == 0)
        y = 0;
    else
        y = -1;
    //输出
    printf("%d\n", y);

    return 0;
}

#include <stdio.h>

int main()
{
    int m = 0;
    //输入
    scanf("%d", &m);

    //输出
    if (m % 5 == 0)
        printf("YES\n");
    else
        printf("NO\n");

    return 0;
}

#include <stdio.h>

//
//scanf函数在调用失败的时候,读取失败的时候,会返回EOF
//EOF -- end of file
//

int main()
{
    //输入
    int iq = 0;
    while (scanf("%d", &iq) != EOF)
    {
        if (iq >= 140)
        {
            printf("Genius\n");
        }
    }

    return 0;
}

#include <stdio.h>

int main()
{
    printf("Name    Age    Gender\n");
    printf("---------------------\n");
    printf("Jack    18     man\n");

    return 0;
}

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    //输入
    scanf("%d %d", &a, &b);
    //输出
    printf("%d %d\n", a / b, a % b);

    return 0;
}

#include <stdio.h>

int main()
{
    int a = 40;
    int c = 212;
    //int ret = (-8+22)*a-10+c/2;

    printf("%d\n", (-8 + 22) * a - 10 + c / 2);

    return 0;
}


//void test()
//{
//	int b = 0;
//
//}
//
//int main()
//{
//	int a = 10;
//
//	return 0;
//}

#include <stdio.h>

//int num = 10;
//
//int main()
//{
//    int num = 1;
//    printf("num = %d\n", num);//1
//    return 0;
//}


//int main()
//{
//	printf("abc\0def");
//	return 0;
//}

//int main()
//{
//	int arr[] = {1,2,3,4,5};
//	int a = 0;
//
//	return 0;
//}


//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    printf("%d\n", strlen("c:\test\121"));
//    return 0;
//}




#include <stdio.h>
#include <string.h>
//
//int main()
//{
//    char arr[] = { 'b', 'i', 't' };
//    printf("%d\n", strlen(arr));
//    return 0;
//}
//
//
//int get_max(int x, int y)
//{
//	if (x > y)
//		return x;
//	else
//		return y;
//}
//
//int main()
//{
//	int n1 = 0;
//	int n2 = 0;
//	//输入
//	scanf("%d %d", &n1, &n2);
//	//求2个整数的较大值
//	int m = get_max(n1, n2);
//	//输出
//	printf("%d\n", m);
//
//	return 0;
//}
//
//int main()
//{
//	//C语言中,0表示假,非0表示真
//	//int flag = 5;
//	//if (!flag)
//	//{
//	//	printf("hehe\n");
//	//}
//	//int a = -10;
//	//int b = +a;
//	//printf("%d\n", b);
//
//	//int a = 10;
//	//printf("%d\n", sizeof(a));//单位是字节
//	//printf("%d\n", sizeof(int));
//
//
//	//int a = 10;
//	//int b = a + 1;
//	//int b = ++a;//前置++,先++,后使用//a = a+1; b=a;
//	//int b = a++;//后置++,先使用,后++ //int b = a;a=a+1;
//
//	//int b = --a;//a=a-1;b=a;
//	//int b = a--;//b=a;a=a-1
//
//	//printf("a=%d b=%d\n", a, b);//9 10
//
//	//int a = 1;
//	//int b = (++a) + (++a) + (++a);//错误的代码
//	//printf("%d\n", b);
//
//	return 0;
//}

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

//int main()
//{
//	int a = 10;
//	if (a >= 10)
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}

//int main()
//{
//	int a = 5;
//	if (5 = a)
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}
//
//int main()
//{
//	int a = 5;
//	int b = 5;
//	if ((a == 3) || (b == 4))//或者
//	{
//		printf("hehe\n");
//	}
//
//	//if ((a == 3) && (b == 4))//并且
//	//{
//	//	printf("hehe\n");
//	//}
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	int b = 5;
//	int m = 0;
//	
//	if (a > b)
//		m = a;
//	else
//		m = b;
//
//	//m = (a > b) ? (a) : (b);
//
//	printf("%d\n", m);
//	return 0;
//}



//调试开始 - f10
//fn+f10


//int main()
//{
//	int a = 3;
//	int b = 20;
//	int c = 0;
//	int d = (a -= 3, b += a, c = a - b, b = a - 4);
//	printf("d=%d\n", d);
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0 };
//	//0~9
//	arr[5] = 9;//[] - 下标引用操作符,他的操作数:数组名,下标
//
//	return 0;
//}

//int get_max(int x, int y)
//{
//	if (x > y)
//		return x;
//	else
//		return y;
//}
//
//int main()
//{
//	int m = get_max(3, 5);//()函数调用操作符,他的操作数是:函数名,3,5
//
//	return 0;
//}
//
//

//int main()
//{
//	{
//		int a = 10;
//		//
//	}
//
//	return 0;
//}

//unsigned int num = 10;
//
//typedef unsigned int uint;
//
//uint num2 = 10;
//
//int main()
//{
//	int num = 10;//4个字节
//	register int num2 = 20;//建议将20放在寄存器中
//
//	return 0;
//}

//static修饰局部变量

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

?

  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:29:37 
 
开发: 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 12:52:47-

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