自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人工zz研究员的博客

专注于python,人工智能,机器学习,深度学习,模型部署,各种边缘设备。

  • 博客(28)
  • 收藏
  • 关注

原创 c语言学习笔记42

在某些场合,要求输入一个字符串,如果是大小写无关的,问题就来了,比如,在大小写无关意义下,“AB”、“ab”、“aB”、“Ab”都是等价的,这仅仅是两个字母的情况,如果字母更多,情况更复杂,在程序中去一一判断也很不现实,为此,C标准库提供了字符串处理函数strupr,用于将字符串中所有的字母都转换成大写形式,其原型为;char* strupr(字符串);//自己编写字符串函数//求长度

2016-06-30 21:28:09 266

原创 c语言学习笔记41

指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变。int main(){ char *a="I love China!";//不能改为char a[]=“I love China!”;   a=a+7;    printf(“%s\n”,a);   return 0;}字符数组中各元素的值是可以改变的,但字符指针变量指向的字符串常量中的内

2016-06-29 22:37:57 245

原创 c语言学习笔记40之字符串函数

strcmp函数用于对两个C风格字符串进行比较,此处的比较不是比较两个字符串的长度,而是逐个比较字符的ASCII码,举例来说,如果字符串1以字母A开头,而字符串2以B开头,则不论两个字符串长度如何,不论两个字符串后续字串是什么,字符串2“大于”字符串1成立(B的ASCII码66大于A的ASCII码65),如果打头字符相同,则比较第2个字符,依此类推,如果第2个字符相同,则比较第3个字符……如果

2016-06-28 22:14:49 300

原创 c语言学习笔记39字符数组

字符串用一维字符数组存放字符数组具有一维数组的所有特点数组名是指向数组首地址的地址常量数组元素的引用方法可用指针法和下标法数组名作函数参数是地址传递等区别存储格式:字符串结束标志赋值方式与初始化输入输出方式:%s  %c用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈,主要有以下几点。(1) 字符数组由若干个元素

2016-06-27 23:04:49 364

原创 c语言学习笔记38之字符指针

字符指针初始化:把字符串首地址赋给stringchar  *string;   string=“I love China!”;C语言允许用字符串常量来初始化字符数组:char c[100] ={"C Program"}; char line[10][10] ={{"*"}, {"***"},{"*"}}; 上面的两个例子也可以写成:char c[100] ="C Pro

2016-06-26 21:56:55 312

原创 c语言学习笔记37之字符串

字符数组的定义形式为:char   数组名[ 常量表达式 ];如:char  a[100];定义了一个字符数组,名字叫c;a数组的数据类型是char [100],表示a中存储有100个字符元素; 这100个字符元素的名字分别是:  a[0],a[1],a[2], ...... ,a[99]字符数组的常见初始化形式如下例:char c[5]={ ‘a’,’b’,’

2016-06-25 22:23:29 693

原创 c语言学习笔记36

代码‑  free函数把指针怎么了#include /*使用printf要包含的头文件*/#include void main(void)/*主函数*/{/*声明一int型指针p,并申请一块动态内存,用其首地址为p初始化*/int *p=(int*)malloc(10*sizeof(int));if(p==NULL) /*防错处理,看内存申请是否成功*/{

2016-06-24 22:39:26 528

原创 c语言学习笔记35之calloc

除了malloc与free外,C语言标准库函数还提供了calloc函数用以动态申请内存,和malloc函数以字节为单位申请内存不同,calloc函数是以目标对象为单位分配的,目标对象可以是数组,也可以是后面会讲到的结构体等。calloc函数的原型为:void* calloc(size_t num, size_t size);malloc()函数返回类型也是void*,需要强制转换才能为

2016-06-23 22:25:26 486

原创 c语言学习笔记34之动态内存分配

先要搞明白一个问题,什么是动态分配,什么是静态分配?举例来说,在声明数组时,必须明确告诉编译器数组的大小,之后编译器就会在内存中为该数组开辟固定大小的内存。有些时候,用户并不确定需要多大的内存,使用多大的数组,为了保险起见,有的用户采用定义一个大数组的方法,开辟的数组大小可能比实际所需大几倍甚至十几倍,这造成了内存的浪费,带来了极大的不便。另一方面,即使用户确切知道要存放的元素个数,但随着问题的深

2016-06-22 22:56:46 313

原创 c语言学习笔记33之void

void *指针是一种特殊的指针,不指向任何类型的数据,如果需要用此地址指向某类型的数据,应先对地址进行类型转换。可以在程序中进行显式的类型转换,也可以由编译系统自动进行隐式转换。无论用哪种转换,大家必须了解要进行类型转换指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示: p=NULL;const取自英文单词constant,是“恒定、不变”的意思,早期的C语言并没有con

2016-06-21 23:19:38 258

原创 c语言学习笔记32

一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已定义返回指针值的函数的一般形式为    类型名 *函数名(参数表列);左值的概念, “可放在赋值号左边的都可称为左值”指针变量以及指针变量的间接引用都可作左值,如:int num1=0,num2=0;int* p=&num1;p=&num2;

2016-06-20 23:06:59 165

原创 c语言学习笔记31之函数指针

如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如:  int (*p)(int,int); 定义p是指向函数的指针变量,它可以指向类型为整型且有两个整型参数的函数。p的类型用int (*)(int,int)表示定义

2016-06-19 22:24:33 193

原创 c语言学习笔记30之函数参数

用指向数组的指针作函数参数一维数组名可以作为函数参数,多维数组名也可作函数参数。用指针变量作形参,以接受实参数组名传递来的地址。可以有两种方法:①一维数组用指向变量的指针变量②二维数组用指向一维数组的指针变量实参数组名是指针常量,但形参数组名是按指针变量处理在函数调用进行虚实结合后,它的值就是实参数组首元素的地址

2016-06-18 22:52:09 459

原创 c语言学习笔记之指针实例

#include int main(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23} printf(“%d,%d\n”,a,*a); printf(“%d,%d\n”,a[0],*(a+0)); printf(“%d,%d\n”,&a[0],&a[0][0]); printf(“%d,%d\n

2016-06-17 22:51:13 208

原创 c语言学习笔记29之指针5

指针与数组表 示 形 式 含义                                                                 地 址a       二维数组名,指向一维数组a[0],即0行首地址       2000a[0],*(a+0),*a    0行0列元素地址                              2

2016-06-16 23:22:13 169

原创 c语言学习笔记28之指针4

对两个毫无关联的指针比较大小是没有意义的,因为指针只代表了“位置”这么一个信息,但是,如果两个指针所指向的元素位于同一个数组(或同一块动态申请的内存中),指针的大小比较反映了元素在数组中的先后关系。若有p=a(p指向数组a),则:p++(或p+=1),表示p指向下一元素。*p++与*(p++)等价。同样优先级,结合方向为自右向左。*(p++) 与*(++p)。前者是先取

2016-06-15 23:12:01 286

原创 c语言学习笔记27之指针3

指针变量的值“指针变量的值”是指针本身存储的数值,这个值将被编译器当作一个地址,而不是 一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址长度都为32位。“指针所指向的内存区“就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。一个指针的值是A,即是说该指针指向了以A为首地址的一片内存区域;反之,说一个指针

2016-06-14 23:13:50 210

原创 c语言学习笔记26之指针2

指针变量作为函数参数——地址传递特点:共享内存,“双向”传递指针变量声明后,编译器为其开辟一定的内存空间,即指针变量占据一定的内存空间。不论是何种类型的指针,都占据4个内存字节(这是由32位地址数据决定的)。如果是64位操作系统,指针就是8个字节。指针变量也是变量,占据一定的内存空间,有地址,因此可以用一个指针指向它,这称为指向指针的指针,或二级指针指针类型,指的是

2016-06-13 23:13:14 280

原创 c语言学习笔记25之指针1

指针:一个变量的地址指针变量:专门存放变量地址的变量注意:一.指针是个量,对应着一块内存区域,     二.指针存储的信息是某个内存单元的地址。     三.指针变量必须先赋值,再使用。在声明一个指针后,编译器并不会自动完成其初始化,此时,指针的值是不确定的,也就是说,该指针指向那块内存单元是完全随机的,因此,指针变量的初始化十分重要,直接使用未加初始化的指针变

2016-06-12 23:22:33 224

原创 c语言学习笔记24之内存

从硬件形态上说,内存就是一条形物理设备,从功能上讲,内存是一个数据仓库,程序内在执行前都要被装载到内存中,才能被中央处理器执行。举Windows系统为例,执行安装在硬盘上的某个程序,实际上是将该程序的指令和数据导入内存,供中央处理器执行的过程。内存是由按顺序编号的一系列存储单元组成的,在内存中,每个存储单元都由唯一的地址,通过地址可以方便地在内存单元中存储信息。内存中的数据要靠供电来维持,

2016-06-11 22:03:17 321

原创 c语言实例之函数副本机制

#include #include struct mystruct{ int a[5]; int n;};void change(struct mystruct my1){ my1.n = 100; my1.a[0] = 1000; printf("changen = %p\n",&my1.n); printf("change = %p\n",&my1);}in

2016-06-08 22:27:23 883

原创 c语言实例之函数求参顺序

#include #include int show(int a,int b){ printf("%d\n",a); printf("%d\n",b);}int main(){ int num; num = 100; show(num,++num); //从左往右 打印100 101; //从右往左 打印101 101; system("pause"); re

2016-06-07 23:02:58 314

原创 c语言实例之腾讯面试题

#include #include //腾讯面试问题:有50个台阶,一次走一步或者走两步,有多少种可能double tencent(int n){ if(n==1) { return 1.0; } else if(n==2) { return 2.0; } else { return tencent(n-1)+tencent(n-2); } }do

2016-06-06 23:04:05 432

原创 c语言函数实例1

#includevoid increase(int x,int y,int z)//函数声明{//打印自增前的形参值printf("Before increment in function:\n");printf("x=%d,y=%d,z=%d\n",x,y,z);//将形参自增++x;++y;++z;//打印自增后的形参值printf("After increment

2016-06-05 22:42:35 278

原创 c语言学习笔记23之面向过程的模块化编程

在60年代计算机发展的初期,程序设计是少数聪明人的玩具,程序员可以根据自己的喜好,像捏泥巴一样进行程序设计,注释几乎是一行没有,想到哪写到哪,大多数程序代码组织混乱,可以说只有作者本人可以看懂,有的甚至作者读起来也不知所以,常称为被称为“意大利面条式编程”。这种个人英雄主义的单打独斗在解决小规模问题时勉强可以,但程序规模的不断扩大,一大堆的问题凸现出来:程序质量低下,进度延误,预算严重超支,这

2016-06-04 22:15:17 676

原创 C语言学习笔记22之函数5

函数和变量一样,也必须“先定义,后使用”。要调用在后面定义的函数,必须在调用函数之前提前声明此函数的原型,否则无法识别函数。原型可不写出形参名。函数调用时需注意的一些常见问题:即便是在调用时无参函数,括号也不能省略。   如 getcharar( );有参函数在调用时,实参与形参个数必须相等,类型应尽量一致;   如 sqr(4,3)(错)sqrt(4)

2016-06-03 23:10:57 305

原创 c语言学习笔记21之函数5

函数调用时,编译器通过函数定义或声明知道形参类型,如果用户传递给被调用函数的实参不满足类型要求,则会产生类型转换,将实参转换成形参类型。使用return语句,可以使函数向调用处返回一个值。 它有两个功能: (1)立即从所在的函数体中退出,返回到调用它的程序中去, (2)同时返回一个值给调用它的函数。 有两种常用方法可以让函数终止运行并返回到调用它的函数中去:

2016-06-02 23:05:20 205

原创 c语言学习笔记20之函数4

在函数定义时参数列表中是a和b,而在函数调用时传递进来的参数是num1和num2,这两种参数是什么关系呢?打个形象的比方,这是角色和演员的关系。函数定义时列表中的参数称为形参,是“剧本角色”,而函数调用时传递进来的参数称为实参,是“演员”,函数执行的过程就是演戏的过程。        程序刚开始执行的时候,编译器并不为形参分配存储空间,因为它只是个角色,不是实体,一直要到函数调用时,编

2016-06-01 23:08:26 239

vue基础面试题目,包含各种基础知识

内容概要: 本基础面试题主要围绕Vue.js的基础知识,包括Vue.js的核心概念、常用指令、组件通信、生命周期钩子等。 适用人群: 本基础面试题适用于具有一定Vue.js开发经验的候选人,包括有一定Vue.js项目经验的前端开发工程师、Web开发工程师等。 使用场景及目标: 本基础面试题的使用场景主要是在招聘Vue.js开发工程师时,用于评估候选人的基础Vue.js知识和技能水平,以及对Vue.js开发的理解和应用能力。面试目标主要是检验候选人是否具备Vue.js开发的基础知识和技能,以及是否能够在Vue.js开发中熟练运用常用指令、组件通信、生命周期钩子等技术,从而为公司的Vue.js项目开发提供良好的技术支持。

2023-03-01

什么是计算机视觉,一些基础概念

什么是计算机视觉,一些基础概念

2023-02-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除