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语言,该了解的基础知识(下) -> 正文阅读

[C++知识库]初入C语言,该了解的基础知识(下)

目录:

1、函数

2、数组

3、操作符

4、常见关键字

5、define 定义常量和宏

6、指针

7、结构体


一、函数

函数定义:

?二、数组

一组相同类型元素的集合

int? arr [5]={1,2,3,4,5};//int 数组类型,即数组内存放值的类型;arr数组名

? ? ? ? ?每个元素都有一个下标,下标从0开始。

初始化:在定义时赋值

例:? int arr[10];不进行初始化,是随机的内容

? ? ? ? ?int arr[10]={1,2,3,4,5,6,7,8,9,10};//完全初始化

? ? ? ? ?int arr [10]={1,2,3,4}不完全初始化,只初始化前3个,剩余的初始化为0;

? ? ? ? ?int arr[3]={0};表示用0进行初始化{0,0,0}

? ? ? ? ?int arr[ ]={1,2,3};元素个数可以省略(自动认为是3)

? ? ? ? int arr[ 3];

? ? ? ? v={1,2,3};不能通过赋值语句进行初始化

三、操作符?

?1、算术操作符:

+? ? ? ? ? ?—? ? ? ? ? ? ?*? ? ? ? ? ? /? ? ? ? ? ? ? %

加? ? ? ? ?减? ? ? ? ? ? ?乘? ? ? ? ?除? ? ? ? ? ? 取余

1、 加(+),减(—),乘(*),除(/)和我们平常的用法一样,都适用于浮点数和整形数;

2、除(/)(整数)/(整数)3/2结果为整数;

3、(整数)/(浮点数)3/2.0结果为小数;只要操作数为浮点数,结果就是小数(浮点数);

4、取余(%):操作符的操作数必须为整数,结果为整数之后的余数。

?2、赋值操作符:

=? ? ? ? ? ? ? ?+=? ? ? ? ? ?-=? ? ? ? ? ? ?*=? ? ? ? ? ? /=

也称“复合运算符”。

例:a+=2等同于a=a+2;这个式子是先计算等号右边的,再把值赋给左边?

3、单目操作符:(只有一个操作数)

逻辑反操作符
-负值
+正值
&取地址
sizeof操作数的类型长度(以字节为单位)
--前置、后置--
++前置、后置++
*间接访问操作符(解引用操作符)
(类型)强制类型转换

前置:例如 ++a先自增+1,后赋值;

后置 :a++先赋值,后自增+1;

sizeof用法:

#include<stdio.h>
int main()
{
    int arr[10]={0};
    printf("%d\n",sizeof(arr));      计算数组总大小(占字节)   40
    printf("%d\n",sizeof(arr[0]));       计算数组第一位大小(占字节)   4
    printf("%d\n",sizeof(arr)/(arr[0]));      计算数组元素个数   40/4
    printf 0;
}

4、关系操作符(双目操作符)

>大于
>=大于等于
<小于
<=小于等于
!=判断是否“不相等”
==判断是否“相等”

?5、逻辑运算符(双目操作数)

&&逻辑与、符号两边表达式都为真才真
||逻辑或、符号两边表达式有一边为真就为真

6、条件操作符: (三目操作符)

exp1 ?? exp2 :exp3? ? ? exp1为真,则执行exp2,为假则执行exp3

举例:?a>b ?? ? a? ? ?:? ? ? ? b

? ? ? ? ? ? ? 真:? ? ? -

? ? ? ? ? ? ? 假:? ? ? ? ? ? ? ? ? ?? -??

7、逗号表达式:?

exp1 ,? exp2 , exp3 , .....expN? ? ?从左往右逐个计算表达式,整个逗号表达式的值为最后一个表达式(expN)的值? ,前面的计算会影响后面的结果。

操作符在这里先了解一下,后面还会有详细介绍。?

四、常见关键字?

列举:

auto? ?break? ?case? ? char? ?const? ?continue? ?default? ?do? ?doubt? ?else? ?enum? exterm

float? ?for? ? goto? ? if? ? int? ?long? ?register? ? return? ? short? ?signed? ? sizeof? ? static

struct? ?switch? ?typedef? ?union? ? unsigned? ?void? ?volatile? ? while

?五、#define定义常量和宏

define是一个预处理指令,可以定义符号和宏。

1、define定义标识符常量

//define定义标识符常量
#include<stdio.h>
#define M 1000 //define定义了一个符号(常量)M值为1000
int main()
{
	int arr[M];//可以用define定义的标识符常量做数组元素个数; 
	printf("%d\n", M);//define 定义的符号的值可以直接使用
	
	return 0;
}  

2、define定义宏?

//宏
//define定义宏
 //宏和函数很像,都有参数。
#include<stdio.h>
#define ADD(x,y)((x)+(y))//宏的定义
int main()
{
	int a = 10;
	int b = 20;
	int sum = ADD(a, b);
	printf("sum=%d\n", sum);
    return 0;
}
//函数
#include<stdio.h>
int Add(int x,int y)
{
    return x + y;
}
int main()
{
    int a = 10;
    int b = 20;
    int sum = Add(a,b);
    printf("sum=%d\n",sum);
    return 0;
}

宏和函数的区别:

? ? ?函数: 函数的参数有具体的类型,函数将函数体放在{}中

? ? ?宏:? ?宏的参数没有具体类型, 宏的内容就跟在参数后面。

?

六、指针

? 内存单元的编号,也就是指针,也就是地址。?

??

?这里一个方框是一个内存单元,一个内存单元占一个字节。

?解引用(*):引用其实就是引用该变量的地址,“解”就是把该地址对应的东西解开。解引用是返回内存地址中保存的值。

举例:?

#include<stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;//& 取地址操作符
	*pa = 20;//* 解引用操作;修改原地址的中变量

	printf("%d\n", a);
    printf("%p\n",&a);//取出a所占4个字节中第一个字节的地址
	return 0;
}

七、结构体?

结构体使C语言有描述复杂类型的能力。

比如描述学生,学生包含:名字+年龄+性别+学号这几项信息。

这里只能使用结构体来描述了。

例如:

#include<stdio.h>
struct Stu// struct是一个结构体关键字
{
    char name[20];//名字
    int age;      //年龄
    char sex[5];  //性别
    char id[15];  //学号
};
void print(struct Stu *ps)
{
    printf("%s %d %s %s\n",(*ps).name,(*ps).age,(*ps).sex,(*ps).id);
    printf("%s %d %s %s\n",ps->name,ps->age,ps->sex,ps->id); //结构体指针->结构体成员 
//指针两种不同的输出方式
}
int main()
{
    struct Stu s={"zhangsan",20,"nan","2022010578"};//s是结构体变量,它包括(名字,年龄,性别,学号)
    printf("%s %d %s %s\n",s.name,s.age,s.sex,s.id);//结构体变量.结构体成员
    print(&s);//print是自定义函数不是库函数
    return 0;
}//用两种输出方式  一种是直接输出  一种是指针方式

?注释:

1、什么时候用ps->和s.

如果你得到的是结构体指针变量用->,如果得到的是结构体变量用s.

2、如上面代码s.name

左边是结构体变量.右边是结构体成员

ps->name

左边是结构体指针->右边是结构体成员

3、如上述代码struct Stu 只是将四个数据集中起来,形成一个类型名,并不定义对象(变量)的实体,不占内存空间。他只是形成一个格式,具体内容需要变量s定义。?

结构体初始化:?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:45:50  更:2022-08-19 18:46:46 
 
开发: 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年5日历 -2024/5/10 15:58:37-

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