有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。 goroutine goroutine是Go并行设计的核心。...goroutine说到底其实就是线程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。...这里有一篇Rob介绍的关于并发和并行的文章:http://concur.rspace.googlecode.com/hg/talk/concur.html#landing-slide channels...(a)/2], c) go sum(a[len(a)/2:], c) x, y := <-c, <-c // receive from c fmt.Println(x, y,...:= make(chan int, 2)//修改2为1就报错,修改2为3可以正常运行 c <- 1 c <- 2 fmt.Println(<-c) fmt.Println
作者简介:CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员 前言: 学长出的这一系列专栏适合有⼀点 C+...+ 基础,但是⼜不怎么扎实,或者知识点串不起来的同学,说⽩了,这个专栏就是为了拯救 ⾯试突击的你,适合⾯试突击 C++ 后台岗位知识时拿来看,不敢说 100 % 涵盖了⾯试问题,但是⾄少 90%是有的。...再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏 目录 C++ 语⾔基础篇 说⼀下你理解的 C++ 中的四种智能指针 1、auto_ptr(C++98 的⽅案,C11 已抛弃)采⽤所有权模式。...2、unique_ptr(替换 auto_ptr ) 3、shared_ptr(共享型,强引⽤) 4、weak_ptr(弱引⽤) C++ 语⾔基础篇 说⼀下你理解的 C++ 中的四种智能指针 ⾯试官你好...+98 的⽅案,C11 已抛弃)采⽤所有权模式。
前言 各位小伙伴们,我们又见面了,很高兴你们能看到这篇文章,和牛牛一起学习c语言的知识。本次牛牛分享的是c语言中有关 函数知识。一起开始学习吧!...牛牛是不会跑题的,牛牛今天主要介绍的是c语言中的函数。 我们知道一个大的问题往往是可以分解成许许多多的小问题来逐个击破解决的。...c语言中便被称为“函数” 函数一般要包括函数名,参数,返回值(有的有,有的没有)等。...计算一个a的b次方(pow函数)等等; 为了提高程序的可移植性,和提高写程序的效率(需要使用的时候可以直接调用就行,并不需要自己写),所以C语言在它的基础库中提供了一系列类似的库函数,方便程序员进行软件开发...printf("%lf", c2); return 0; } 运行结果: 知识补充: 库函数是不能直接使用的,因为库函数是C语言它的基础库提供的,那是别人的东西,我们只能借用,所以我们在使用它之前需要和它的主人
一、函数 C语言里可以对语句进行分组,每个语句分组叫做一个函数 一旦函数被调用,会执行该函数所表示的语句分组 1.1 函数的调用 int main(void){ printf("hello,world...printf函数 使用被调用函数的函数被称为调用函数 - main函数 1.2 函数调用的本质 三步骤: 跳转 执行 返回(从哪儿跳转,到哪儿返回) 1.3 为什么要使用函数 明确任何C语言程序都是由两部分组成...本质目的:减少开发的工作量,提高代码的可维护性 1.4 函数的返回值 只能从被调用函数向调用函数传递一个数据,这个数据叫做被调用函数的返回值 返回值必须记录在被调用函数的储存区里,编写函数的时候要把这个储存区的类型名称卸载函数名称前面...把函数声明语句卸载文件开头叫做函数的显式声明 除了主函数以外的所有函数都应该进行显式声明 格式:extern 返回值类型 函数名(形参列表) 函数的定义在函数的调用前面,可以省略函数声明 二、递归函数 2.1 什么是递归函数 C语言里函数可以调用自己
那么为什么要学习NDK呢 现在的美颜特效,以及视频播放,GIF展示,大部分都是用NDK技术来处理的,因为原生的语言对于这些功能处理比JAVA要高效很多。...如何使用NDK C语言以及C++语言基础 JNI语法编写 那么让我们开始启航吧!...; system("pause"); } C语言中数据类型都有哪些 short、int、long、char、float、double(c语言中没有boolean类型) 他们所占内存的大小与操作系统有关...指针 C语言中可以用*代表指针,&带表取地址符 //尖括号代表系统类库,std表示标准,io表示输入输出 引入标准输入输出 #include //lib表示类库 引入标准类库 #include
前言 牛牛又和大家见面了,本篇牛牛要讲的内容是c语言中有关数组的内容。 欢迎大家一起学习,共同进步。...补充小知识: 1.sizeof:c语言中的一个关键字,也是一种操作符。是用于计算数据在内存中所占的字节数。 1.4 一维数组的存储 数组在内存中是怎样存储的呢?...试着猜一下下面代码运行的结果: 补充小知识: strlen:C 语言中的库函数中的一种,用于计算字符串的长度,直到遇到结束字符(‘\0’),但不包括空格字符。...注意:C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的。 建议我们在使用数组的时候要注意检查,数组是否越界。...{ arr[i] = i; printf("%d ", arr[i]); } return 0; } 好了,今天c语言中有关数组的知识就牛牛讲到这里了。
,说⽩了,这个专栏就是为了拯救 ⾯试突击的你,适合⾯试突击 C++ 后台岗位知识时拿来看,不敢说 100 % 涵盖了⾯试问题,但是⾄少 90%是有的。 ...再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏 目录 1、C++ 中内存分配情况 2、C++ 中的指针参数传递和引⽤参数传递 3、C++ 中 const 和 static 关键字(定义,⽤途) 作...⽤⼀: 作⽤⼆: 作⽤三: 作⽤四: 作⽤五: 1、C++ 中内存分配情况 栈:由编译器管理分配和回收,存放局部变量和函数参数。...2、C++ 中的指针参数传递和引⽤参数传递 指针参数传递本质上是值传递,它所传递的是⼀个地址值。...3、C++ 中 const 和 static 关键字(定义,⽤途) static 作⽤:控制变量的存储⽅式和可⻅性。
数组是由一系列类型相同的数据对象依次排列组合而成 组成数组的数据对象被称作数组的元素 重点: 依次排列 类型相同 2.声明数组 //格式: 元素类型 数组名[元素数量]; //示例: char c[...C语言编译器不会检查数组是否越界。
前言 本篇接上一篇文件操作(上篇)的内容 文件的顺序读写 在上一篇已经介绍了前面四个了,接下来介绍后面四个 fscanf和fprintf 上面的四个都是针对字符的输入输出,但是实际文件会有不同的数据类型...feof ( FILE * stream ); 文本文件例子: #include #include int main(void) { int c;...= EOF) // 标准C I/O读取⽂件循环 { putchar(c); } //判断是什么原因结束的 if (ferror(fp))...缓冲区的⼤⼩根据C编译系统决定的。...(就像为了提高老师答疑的效率,让学生先累积一些问题再去问) 测试: #include #include //VS2022 WIN11环境测试 int main
1.变量名(标识符) 变量名:变量名在 C 语言里面属于标识符(identifier),命名有严格的规范。 只能由字母(包括大写和小写)、数字和下划线(_)组成。 不能以数字开头。...2.声明变量 C语言的变量,必须先声明后使用。如果一个变量没有声明,就直接使用,会报错。 每个变量都有自己的类型(type)。声明变量时,必须把变量的类型告诉编译器。...虽然 C语言会自动转换类型,但是应该避免赋值运算符两侧的类型不一致。...C 语言有左值(left value)和右值(right value)的概念。左值是可以放在赋值运算符左边的值,一般是变量;右值是可以放在赋值运算符右边的值,一般是一个具体的值。...C语言的变量作用域主要有两种:文件作用域(file scope)和块作用域(block scope)。
程序文件 程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows 环境后缀为.exe)。...文件路径 这里介绍的都是Windows系统下的 绝对路径 绝对路径,是从盘符开始的 使用反斜杠\ 例如data.txt是存放在C:\code\day1的目录下的,那这个文件的绝对路径就是C:\code\.../相当于C:\code . ../ ../表示当前路径上上一级路径,相当于C: 向下一级目录指向 ....C语⾔中,就是通过 FILE*的⽂件指针来维护流的各种操作的 文件指针 缓冲⽂件系统中,关键的概念是“⽂件类型指针”,简称“⽂件指针”。...main() { char arr[20] = { 0 }; fgets(arr, 20, stdin); fputs(arr, stdout); return 0; } 有关文件的其他操作会在下一篇博客中介绍
一、函数 C语言里可以对语句进行分组,每个语句分组叫做一个函数 一旦函数被调用,会执行该函数所表示的语句分组 1.1 函数的定义 c 代码: //此段代码为一个函数用于计算a+b的值 int main...return a + b; } 函数调用 - 使用已经定义好的函数 被使用的函数称为被调用函数 - printf函数 使用被调用函数的函数被称为调用函数 - main函数 函数定义的写法: C...实参 printf("%d",result); return 0; } 1.2 函数调用的本质 三步骤: 跳转 执行 返回(从哪儿跳转,到哪儿返回) 1.3 为什么要使用函数 明确任何C语言程序都是由两部分组成...本质目的:减少开发的工作量,提高代码的可维护性 1.4 函数的返回值 只能从被调用函数向调用函数传递一个数据,这个数据叫做被调用函数的返回值 返回值必须记录在被调用函数的储存区里,编写函数的时候要把这个储存区的类型名称卸载函数名称前面...把函数声明语句卸载文件开头叫做函数的显式声明 除了主函数以外的所有函数都应该进行显式声明 格式:extern 返回值类型 函数名(形参列表) 函数的定义在函数的调用前面,可以省略函数声明 二、递归函数 2.1 什么是递归函数 C语言里函数可以调用自己
1.2 strlen strlen 是C语言库函数,功能是求字符串长度。...里是地址的大小,大小为4或8个字节 sizeof(&a[0]+1)根据以上推测第一个地址加一相当于第2个地址,既然是地址,那大小为4或8个字节 2.2 字符数组 char arr[] = {'a','b','c'...大小为4或8个字节 sizeof(&arr【0】+1),&后跟首元素的地址,加一是第2个元素的地址,所以此时sizeof里是个地址大小,大小为4或8个字节 char arr[] = {'a','b','c'...那数组里就三个数,1,3,5,a[0]是第一行数组名,代表第一行首元素地址,用指针p表示,那p[0]就是第一行首元素,结果就是1 OK,指针这块就完全结束了,喜欢的各位可以点赞,对指针还是不懂的朋友可以从我的第一篇指针博客再回顾一下
20; printf("%d\n",i); getchar(); } 加一个*是i的地址,加两个*是i的值(最多三级指针) 使用场景 动态内存分配 二维数组 指针运算(对数组的操作) 注意C中数组
功能是为已经分配的内存重新分配空间并复制内容,会自动将内存初始化为 0; realloc 原型:voidrealloc(void ptr,unsigned int size),ptr:已分配的内存地址,size:重新分配的字节数 内存分区 C/...C++中,内存分为:堆、栈、自由存储区、全局/静态存储区、常量存储区; 堆:由 new 分配的内存块,一般对应一个 delete,若没用释放,则程序结束后操作系统自动回收; 栈:编译器需要的时候分配,不需要时自动清楚的变量的存储区...0’; gets 和 scanf gets 遇到换行符表示结束,而 scanf 遇到空格、制表符、换行则表示结束; Unicode 字符问题 char 字符串可显示汉字,但字符不可以,字符连在一起用%c%...c 可以输出一个汉字; 结构体 结构体引用方式:结构体数组名[下标].成员名; 结构体指针变量引用成员形式:(*结构体指针名).成员名、结构体指针名->成员名、结构体变量名.成员名; 结构体字节对齐机制
说 明 这是我大一暑假时系统学习谭浩强第三版《C程序设计》时写下的笔记。...也正是因为那一次耗时整整一个星期系统性地学习这本书,才奠定了我现在的编程基础和逻辑思维,在后来的编程生涯中,我先后学过很多其他的编程语言,每种语言都上手特别快,这完全离不开当初学习这本C语言教程时所付出的努力...笔记内容比较多,所以打算分成四篇推文来发表,第一篇主要是基础的内容,第二篇主要是指针方面的内容,第三篇主要是结构体和共用体相关的内容,第四篇则主要是文件操作相关的。 基础部分冷知识 ?
说 明 这是我大一暑假时系统学习谭浩强第三版《C程序设计》时写下的笔记。...也正是因为那一次耗时整整一个星期系统性地学习这本书,才奠定了我现在的编程基础和逻辑思维,在后来的编程生涯中,我先后学过很多其他的编程语言,每种语言都上手特别快,这完全离不开当初学习这本C语言教程时所付出的努力...笔记内容比较多,所以打算分成四篇推文来发表,第一篇主要是基础的内容,第二篇主要是指针方面的内容,第三篇主要是结构体和共用体相关的内容,第四篇则主要是文件操作相关的。 指针与数组 ? 指针与字符串 ?
说 明 今天给大家分享我的C语言学习笔记第三篇——结构篇。...前两期分享的是基础篇和指针篇,有兴趣的童鞋可以关注我的公众号查看历史推文,另外这里预告下期分享的是文件篇敬请期待。...这一篇中分享的内容包括结构体和共用体的概念基础、枚举类型、数据类型重定义、位操作以及基于结构体基础的位段、指向结构体变量的指针、基于结构体的简单链表数据结构及其相关操作等。...希望这篇笔记会对正在学编程,或者正在准备进行跟C语言有关的考试,亦或者考研要考C语言的同学有所帮助。...C语言中的结构是数据结构学科的重要基础,而数据结构又是算法的基础,因此只有对结构有着非常清晰的认识,才能设计出一个好的算法来,从而写出一个好的程序来。 结构体基础 ? 指向结构体变量的指针 ?
后续常量较前一个常量 +1\ ---- 系统文件 C语言中有三个特殊的文件指针由系统默认打开,用户无需定义即可直接使用: 1.stdin: 标准输入,默认为当前终端(键盘),我们使用的scanf、getchar...) , popen()对应pclose(), 千万不能混着用 ---- 文件访问路径 绝对路径 从系统磁盘的 根盘符开始,找到待访问的文件路径 Windows书写方法: 1)C:...\\Users\\afei\\Desktop\\06-文件分类.avi (注意是俩个\\) 2)C:/Users/afei/Desktop/06-文件分类.avi --- 也使用于
是一个运算符,所以这样写也可以,二者等价(之前有的地方是可以的,但是在VS2019好像并不可以,改天我再看看) int arr[10] = { 0 }; int 10[arr] = { 0 }; 3.C语言规定
领取专属 10元无门槛券
手把手带您无忧上云