指针数组

初识指针之遍历数组

匿名 (未验证) 提交于 2019-12-02 23:40:02
试题描述 定义一维整型数组x,并输入数组元素个数N。要求使用指针运算的方法遍历数组并对数组各个元素进行赋值及输出操作。 要求使用如下公式给数组各个元素赋值: x[i] = 600 * cos(i * 0.35) 输入 输入一个整数N(0 < N < 1000)。 输出 逐个输出数组中的N个元素,邻近两数之间用一个空格隔开。 输入示例 5 输出示例 600 563 458 298 101 数据范围 输入和输出均为int范围的整数,对于100%的数据,0 < N < 1000 #include "stdio.h" #include "math.h" void main() { int x[1000]={0},N,i; int *p,*y; y=&N; p=x; scanf("%d",&*y); for(i=0;i<*y;i++) { *p=600*cos(i*0.35); printf("%d ",*p); } } 文章来源: https://blog.csdn.net/Lhw_666/article/details/91415083

模拟qsort实现冒泡排序

匿名 (未验证) 提交于 2019-12-02 23:36:01
1.数组指针 数组指针是指针,指针指向数组,其内部保存的是数组的地址,只要是指针,就占4个字节。 比如: int arr[5]; //数组 int *parr1[10]; //指针数组 int (*parr2)[10];//数组指针 int (*parr3[10])[5]; //数组指针数组 解释:命名规则按照操作符的优先级来决定。 2.函数指针和定义 定义:函数指针是指向函数的指针变量。 用途:调用函数和做函数的参数 声明方法:返回值类型(*指针变量名)([形参列表]) 比如: #include <stdio.h> void test() { printf("hehe\n"); } int main() { printf("%p\n", test); printf("%p\n", &test); return 0; } 运行结果: 输出的是两个地址,这两个地址是 test 函数的地址。 那我们的函数的地址要想保存起来,怎么保存? 下面我们看代 码: void test() { printf("hehe\n"); } //下面pfun1和pfun2哪个有能力存放test函数的地址? void (*pfun1)(); void *pfun2(); 首先,能给存储地址,就要求pfun1或者pfun2是指针,那么答案就是:pfun1可以存放。pfun1先和*结合,说明pfun1是指针

字符串指针数组长度

匿名 (未验证) 提交于 2019-12-02 23:32:01
const char *cmdMsgString[] = { "OK", "ERROR", "RING", "RING&CID", "CFGTDM" }; #if 1//test printf("----------------------------------------------\n"); printf("string : %s\n",(string));  //CFGTDM printf("strlen(string) : %d\n",strlen(string));  //6 printf("sizeof(string) : %d\n",sizeof(string));  //4 printf("sizeof(*string) : %d\n",sizeof(*string));  //1 printf("*(char *)(string+1) : %c\n",*(char *)(string+1));  //F printf("\n"); printf("(cmdMsgString[4]) : %s\n",(cmdMsgString[4]));  //CFGTDM printf("strlen(cmdMsgString[4]) : %d\n",strlen(cmdMsgString[4]));  //6 printf("sizeof(cmdMsgString) : %d

【软考】【软件设计师】【知识模块】【第3章:数据结构】

感情迁移 提交于 2019-12-02 23:25:51
第三章:数据结构: 数据结构是程序设计的重要基础 学会数据结构的目的:   学会从问题出发,分析和研究计算机加工的数据的特性,   以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的操作方法;   【对于一个数据结构,需要考虑三个因素:逻辑结构、存储结构、运算方法(操作方法)】   为提高利用计算机解决问题的效率服务;   数据结构是指:数据元素的集合及元素间的相互关系和构造方法。     元素间的相互关系:数据的逻辑结构     元素间关系的存储:存储结构(或称之为 物理结构)        数据结构的分类:     线性结构     非线性结构       又分为树结构、图结构;       数据结构是算法设计的基础。   线性结构:线性结构主要用于 对客观世界中具有单一前驱和后继的数据关系进行描述。     线性表       按照存储方式分类:         采用顺序存储:用一组地址连续的存储的存储单元 依次存储线性表中的数据元素,           现象:逻辑上相邻的两个元素,在物理位置上也相邻。           优点:可以随机存取表中的元素,即可以对数据随机访问。           缺点:插入和删除需要移动其他元素;(有时的移动量挺大)           特点:              各个结点的空间应该需要事先分配完毕,后续不论是否有数据

面试题(转)

混江龙づ霸主 提交于 2019-12-02 23:11:54
微软 面试题 :地球上有多少个满足这样条件的点 站在地球上的某一点,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点。地球上有多少个满足这样条件的点? 北极点满足这个条件。 距离南极点很近的一个圈上也满足这个条件。在这个圆圈上,向南走一公里,然后向东走一公里恰好绕南极点一圈,向北走一公里回到原点。 所以地球上总共有无数点满足这个条件。 谷歌面试题:判断一个自然数是否是某个数的平方 判断一个自然数是否是某个数的平方。当然不能使用开方运算。 假设待判断的数字是 N。 方法1: 遍历从1到N的数字,求取平方并和N进行比较。 如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。 复杂度为O(n^0.5)。 方法2: 使用二分查找法,对1到N之间的数字进行判断。 复杂度为O(log n)。 方法3: 由于 (n+1)^2 =n^2 + 2n + 1, = ... = 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1) 注意到这些项构成了等差数列(每项之间相差2)。 所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。 如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。 复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法

Golangѧϰ

匿名 (未验证) 提交于 2019-12-02 22:56:40
这篇文档零散的记载了一些知识点以及容易犯错的语法知识 结构体绑定方法分为两种情况:指针绑定和赋值绑定,下面是两种情况的地址情况 import "fmt" import "unsafe" type MyStruct struct { id int } func (self MyStruct) Assignment() { fmt .Println (unsafe .Pointer (&self)) } func (self MyStruct) modify_value_assignment() { self .id = 2 } func (self *MyStruct) Pointer() { fmt .Println (unsafe .Pointer (&self)) } func (self *MyStruct) modify_value_pointer() { self .id = 2 } func main() { s0 := MyStruct{ 1 } fmt .Println (s0) fmt .Println (unsafe .Pointer (&s0)) //打印地址 s0 .modify _value_assignment() fmt .Println (s0) // { 1 } s0 .Assignment () s0 .modify _value_pointer

PHP常用函数大全

梦想的初衷 提交于 2019-12-02 18:58:28
字符串函数 strlen:获取字符串长度,字节长度 substr_count 某字符串出现的次数 substr:字符串截取,获取字符串(按照字节进行截取) mb_strlenmb_substr strchr:与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 strtolower:所有的字符都小写(针对英文字母) strtoupper:所有的字符都大写 strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转 strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找 strrpos:与strpos一样,只是从字符串的右边开始找 trim:去掉函数两边的字符,默认是空格 str_split 函数把字符串分割到数组中。 chunk_split() 函数把字符串分割为一连串更小的部分 str_repeat("Shanghai",5);把字符串 "Shanghai " 重复 5 次 str_replace('\\', '/', dirname(__DIR__))); 替换 ucfirst 首字母大写 时间日期函数 time:得到当前时间的时间戳(整型:从格林威治时间1970年1月1日0时0分0秒开始)秒数 date:时间序列化函数,将指定的时间戳转换成规定时间日期的显示格式

C++ 程序设计

六月ゝ 毕业季﹏ 提交于 2019-12-02 18:40:14
C++的基本知识 C++的数据类型 变量和常量 运算符和表达式 基本的输入/输出方法 基本控制结构程序设计 分支结构程序设计 循环程序设计 break, continue控制语句 结构化程序设计思想 函数 函数的定义与调用 函授的参数传递、返回值与函数声明 变量的作用域和生存期 函数的递归调用 函数的重载 头文件与多文件结构 编译预处理 数组 一维数组的定义,初始化和访问 二位数组的定义,初始化和访问 用数组作为函数参数 字符串和字符数组 字符串函数 指针 指针与地址 this指针 数组与指针的关系 指针与函数 引用 自定义数据类型 结构体 动态内存分配 链表与链表的基本操作 枚举类型 类与对象 面向对象的程序设计 类与对象的概念与设计 构造函数和析构函数 复制构造函数 共有数据的保护 静态成员 友元 类模板 运算符的重载 继承与多态 继承与派生的概念 派生类的构造函数与析构函数 多重继承与派生类的成员标识 虚基类 多态性与虚函数 输入输出流 C++的输入输出流 文件的I/O操作 基本数据类型与输入输出 掌握各种基本数据类型的定义与操作;掌握cin和cout的用法;了解printf和scanf的用法 字符集与保留字 基本数据类型 变量与常量的定义 cin,cout printf, scanf 的用法 表达式和过程化语句 掌握表达式和语句的概念,掌握各种运算符的使用

刷14道leetcode的总结

时光毁灭记忆、已成空白 提交于 2019-12-02 18:08:57
引子 为什么我要刷leetcode?换工作?不是!那是?玩!巴菲特的双目标清单系统,基本方法是列两个清单,一个是职业生涯最重要的目标(不超过5个),另一个是比较重要的目标。对于比较重要的目标,要像躲避瘟疫一样的去躲避它们,不投入任何的时间和精力,把这些资源花在最重要的目标上。这个双目标清单系统以方法的形式说明三件事: 1,目标很重要 2,专注很有力量 3,比起「有所为」、「有所不为」更为关键 所以当我想做一件事情,但是想不到这件事情能给我带来实在的收益时,我就定义为「玩」。就像看电影、喝奶茶一样。我只是去做这件事,在有闲暇的时候占用一些时间,并不占用精力。 我工作十二年,技术一直不好。虽然对一部分人来说还算可以,在美团工作、百余项技术发明专利、kubernetes源码贡献者。但是即使在名声每况愈下的母校同届同专业毕业生中,也算是菜的。原来我之前一直定义为没有天赋。在毕业的第一家公司,被作为技术招进来,但是因为语言学的太好做的是翻译的工作。一年过日语1级。参加任何和日语相关的比赛,只要我参加,第一名肯定是我的,没别人什么事儿。别人说这是天赋,我那时候没想过这个问题,只是不由自主的把精力都花在了这上面。而对于工作,只是完成任务。对于技术,只是用到才去学。很久之后我才说服自己:我的没有天赋只是没投入精力而已。在一件事上有多少天赋取决于在这上面成功的渴望有多强烈。所以现在,我有了一个重心

LeetCode解题汇总目录

a 夏天 提交于 2019-12-02 17:37:52
此篇为学习完 《数据结构与算法之美》 后,在 LeetCode 刷题的汇总目录,方便大家查找(Ctrl+F ind ),一起刷题,一起PK交流!Updated on 2019.12.2 刷题可以按照 不同的专题 进行,便于加强某个知识点的理解。 我的 LeetCode 主页 我的 GitHub 主页 已解决 519/1185 - 简单 281 中等 208 困难 30 2019.7.24 - 2019.11.9,108天做了400道题 2019.11.9 - 2019.11.24, AC+100道,4个月共计500道题 参赛记录 LeetCode 2019 力扣杯全国秋季编程大赛 ​ 已解题目,部分太简单的没有列出 LeetCode 1. 两数之和(哈希) LeetCode 2. 两数相加(单链表反转) LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希) LeetCode 4. 寻找两个有序数组的中位数(二分查找,难) LeetCode 7. 整数反转 LeetCode 8. 字符串转换整数 (atoi) LeetCode 9. 回文数 LeetCode 11. 盛最多水的容器(双指针) LeetCode 14. 最长公共前缀 LeetCode 15. 三数之和 LeetCode 16. 最接近的三数之和(固定左端+滑动窗口) LeetCode 17.