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.函数:C中函数传递的是值,不是地址值。不会对原变量进行操作。

例如:1.函数的传值与传址(ab与xy是俩个完全独立的空间,地址是不一样的)

//swap1在被调用的时候,实参传给形参,其实形参是实参的一份临时拷贝
//改变形参,不能改变实参
//形参是在函数调用的时候才实例化,才开辟内存空间
void Swap1(int x, int y)//
{
	int z = 0;
	z = x;
	x = y;
	y = z;
}


void Swap2(int* pa, int* pb)//
{
	int z = 0;
	z = *pa;
	*pa = *pb;
	*pb = z;
}

int main()
{
	int a = 10;
	int b = 20;
	//写一个哈函数 - 交换2个整型变量的值

	Swap1(a, b);//传值调用
	printf("交换前:a=%d b=%d\n", a, b);
	Swap2(&a, &b);//传址调用
	printf("交换后:a=%d b=%d\n", a, b);

	return 0;
}

? ?c语言库:主要有:IO操作、字符串操作、字符操作、内存操作、时间操作、数学操作、其他操作。

2指针: 指针类型存储不同类型,对指针类型变量操作时,改变的具体值是不一样的:例如:int* p,改变时是操作4个字节, char* cp ,改变操作时操作1个字节。

2.1 野指针:1局部变量内存释放后,指针变为野指针。2 数组越界后

3? 分模块开发时:? 本地库使用:<>? 自定义头文件:? ""

引入本地库:#include? <stdio.h>? ? ? 引入自己定义的h头文件: #include "add.h"??

4 数组:数组创建, [] 中要给一个常量才可以,不能使用变量

?4.1? sizeof和strlen区别:

?arr2中的abc没有\0(\0为字符串结束标识),arr1中存储的为 “abc\0”

4.2? 数组大小:?

4.3 二维数组不能省略列的下标:? int arr[3][] ={{1,2,3,4},{5,6,7,8}}? 这种事错误的,但是这种可以:int arr[][4] ={{1,2,3,4},{5,6,7,8}}

4.4? 数组传值时,传的是首元素地址值,需要使用数组个数,需要在函数参数中传递,不然获取不到数组个数的。? 下面的例子中,??void bubble_sort(int arr[])? 函数中?int sz = sizeof(arr)/sizeof(arr[0]);? 得到的sz为1? ? 因为 此时传递的是&arr[0] 的地址值,? ?sizeof(arr) == sizeof(arr[0])

//方法1:
#include <stdio.h>
void bubble_sort(int arr[])
{
 int sz = sizeof(arr)/sizeof(arr[0]);//这样对吗?
 ? ?int i = 0;
 for(i=0; i<sz-1; i++)
 ? {
 ? ? ? ?int j = 0;
 ? ? ? ?for(j=0; j<sz-i-1; j++)
 ? ? ? {
 ? ? ? ? ? ?if(arr[j] > arr[j+1])
 ? ? ? ? ? {
 ? ? ? ? ? ? ? ?int tmp = arr[j];
 ? ? ? ? ? ? ? ?arr[j] = arr[j+1];
 ? ? ? ? ? ? ? ?arr[j+1] = tmp;
 ? ? ? ? ? }
 ? ? ? }
 ? }
}
int main()
{
 ? ?int arr[] = {3,1,7,5,8,9,0,2,4,6};
 ? ?bubble_sort(arr);//是否可以正常排序?  此时传递的是&arr[0] 的地址值
 ? ?for(i=0; i<sizeof(arr)/sizeof(arr[0]); i++)
 ? {
 ? ? ? ?printf("%d ", arr[i]);
 ? }
 ? ?return 0; }

4.5? 数组名的含义:

数组名是数组首元素的地址。(有两个例外)
1. sizeof( 数组名 ) ,计算整个数组的大小, sizeof 内部单独放一个数组名,数组名表示整个数
组。
2. & 数组名,取出的是数组的地址。 & 数组名,数组名表示整个数组。

所以&arr是取得整个数组的地址

?

?

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

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