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++知识库 -> 23考研王道c语言初级day5 -> 正文阅读

[C++知识库]23考研王道c语言初级day5

一、作业——malloc

题目:输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可

注意下面问题:

char *p;

scanf("%d",&n);

p=malloc(n);

scanf("%c",&c);//注意在scanf和gets中间使用scanf("%c",&c),去除换行 //?why 因为回车会被gets读取 需要scanf%c来消耗一个回车

scanf("%d")中,假如输入10\n,scanf只会在标准输入缓冲区中读走10,留下\n,这时如果gets()

就会直接跳过,因为gets读取的结束标志是\n

gets(p);

int main() {
	int i;//申请的空间
	scanf("%d", &i);//输入的整型数
	char* p;
	p = (char*)malloc(i);//规范写法,把void*型的malloc强制转换,给p申请i个字节的内存空间
	scanf("%c", p);
	gets(p);
	puts(p);
}

二、字符指针与字符数组的初始化

c[0]='H';是可以执行的,

p[0]='H';这一步会报错,因为指针p指向字符串是存放在内存的常量区数据,只读;数组c的字符串在栈空间可读可写。

内存权限分为可读可写

同理,下两步指针p可以被字符串常量的地址赋值,数组名c的地址在定义时就是固定的,不是变量不可被赋值

三、二级指针(了解)

要理解c++的引用需要先了解二级指针?

?此处change函数的作用就是把pj赋值给二级指针*p

四、函数

?学习目标:

  • 函数的声明、定义和调用
  • 递归调用
  • 变量及函数的作用域

1.函数的声明、定义(实现)和调用

新建头文件一定选择头文件,否则编译不通

移除和删除:移除从解决方案资源管理器中移除,根目录下保留;删除直接删除根目录文件

?strcpy没有头文件也可以使用的原因是这个函数的实现在动态库中 c库 .dll(Dynamic Link Library)

?

?

函数的定义与声明:

?

?如果定义函数和声明函数的两个函数名不匹配,会产生链接错误。

?

全局变量中易出错的点:

int i = 10;//全局变量

void print(int a) {
	printf("print i=%d\n", i);
}

int main() {
	printf("main i=%d\n", i);
	i = 5;//改变了全局变量的值
	print(i);
}

?此时输出结果

?但是如果在main函数里这样写会达不到想要的结果,main i和print i都将为10

因为在main函数里定义的变量是在main函数的栈空间里,和放在内存数据区的全局变量i并不是一个变量。

因为容易出错,尽量避免使用全局变量。

2.递归调用?(初试考的概率低,机试小概率)

函数调用自身就是递归。

第一步:写好公式

第二步:写结束条件,否则死循环

求阶乘的递归函数:

int f(int n) {
	if (n==1){
    return 1;                //结束条件,1!=1
    }
    return n * f(n - 1);     //n*(n-1)!
}


int main() {
	int n = 5;
	int result = f(n);
	printf("result=%d\n", result);
}

局部变量的有效范围是最近的花括号

?

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

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