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语言笔记(那些容易忽略的要点!!!)

遇到什么有价值的便记录下来,持续更新~

1.函数只用一个返回值(单一出口原则),结构清晰,便于修改

2.一个变量既是循环遍历的变量又是条件判断的变量(一专多能是不好的代码)

3.线性搜索没有效率,二分法效率极高,次数为log2 n

4.数组的大小
sizeof给出整个数组所占据的内容的大小,单位是字节
sizeof(a[0]给出数组中单个元素的大小,于是相除就得到了数组的单元个数
//这样的代码,一旦修改数组中初始的数据,不需要修改遍历的代码(安全)

int a[]={0,1,2,3,5};
int length = 0;
length = sizeof(a) / sizeof(a[0]);
 printf("main_数组的长度为: %d\n",length);
// 所有数据的字节数除以一个数据的字节数即为数据的个数

注:传入函数参数表的数组其实是一个指针
(所以应该直接传值,如:sum(a,length);)
//不能在sum()函数里使用,
其中传递的数组参数和常量指针一样,如:
sizeof(a)=4字节//实际上是在32位编译环境的int型一个指针大小
(32位操作系统,一个字节刚好是8位,因此是4个字节)
即sizeof(a)==sizeof(int*)

但是仍然可以用数组的运算符[]进行运算

以下四种函数原型是等价的:
int sum(int *a,int n);
int sum(int *,int );
int sum(int a[],int n);
int sum(int [],int );

总结:
sizeof(数组名):返回数组所有元素占有的内存空间字节数。
sizeof(指针) :返回计算机系统的地址字节数,如果是32位系统,返回4,16位系统返回2。

5.&边上必须是明确的变量
&(a+b)不可取
内存是堆栈分配,自小变大的,比如int类型
int a[10];
a[0]0x000004与a[1]0x000008相差4

6.int* p,q;与int *p,q;表达意思一样
其中p(星p)为指针,q为int型变量
指针变量不能放实际值,只放别的(整型)变量的地址

7.数组变量本身表达地址,所以:
int a[10];
int *p=a;//不需要用&取地址
但数组的单元表达的是变量,需要用&取地址
a==&a[0]

[]运算符可以对数组做,也可以对指针做:

p[0]<==>a[0]
{
int *p=&min;
    *p==p[0]//两者值相等
}

*运算符可以对指针做,也可以对数组做:
*a=25;//可以读、写值
数组变量是const(常量)的指针,所以不能被赋值
两个数组之间不能直接赋值

int b[] <==>int * const b//不能被赋值
int *q=a;  //可以赋值
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 16:00:39  更:2021-09-20 16:01:20 
 
开发: 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/26 3:50:54-

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