
C/C++
donCoder
这个作者很懒,什么都没留下…
展开
-
深度剖析C/C++中数组名与指针的详细区别
在很多教材中甚至大学老师上课时都直接说数组名是一个指针。然而这种说法不是非常的严谨,因为数组名与指针有很明显的量大差别。在《C Primer Plus》中也只是说了数组名只是相当于一个const修饰的指针,除此之外并没有任何其他详解。所以下文将会详细讲解这两者的差别。一、数组名的运算与指针并不是完全相同。这是最明显的例子,指针支持自增、自减运算,但是数组名并不支持自增、自减运算。其实这么做...原创 2019-11-21 17:01:05 · 486 阅读 · 0 评论 -
C语言多维数组与指针的关系
此篇博客分为三个主题:一、一维数组与指针二、二维数组与指针三、高维数组与指针指针与数组密切相关,深刻理解二者关系不仅可以更加灵活运用数组,更可帮助深入理解指针。一、一维数组与指针我们首先来定义一个一位数组:int arr[5] = {6,5,4,3,2,1};在正式开始之前,先来明确两个定义:1、首地址:数组首元素地址。也就是说,一维数组的为一个对应数据类型所...原创 2019-06-05 23:57:32 · 1726 阅读 · 0 评论 -
关于C/C++中的结构体赋值问题
在C++11标准中,是允许对结构体进行以下赋值操作的:#include struct book{ char title[200]; char author[200]; float val;};int main(){ struct book lib { // "The Pious Pirate and The Devious Damsel",原创 2018-01-27 17:33:25 · 2637 阅读 · 0 评论 -
C语言中的字符串与字符串函数
一、gets()函数gets()函数在其函数声明中声明括号中的类型为char *。但当我尝试下列操作时却给出了警告:p没有使用。#include<stdio.h>int main(){ char *p; gets(p); printf("%s",p); return 0;} 后来得知,char*只负责指向某一段字符串。程序中...原创 2018-02-01 22:03:21 · 837 阅读 · 0 评论 -
写递归函数的正确思维方法
什么是递归简单的定义: “当函数直接或者间接调用自己时,则发生了递归.” 说起来简单, 但是理解起来复杂, 因为递归并不直观, 也不符合我们的思维习惯, 相对于递归, 我们更加容易理解迭代. 因为我们日常生活中的思维方式就是一步接一步的, 并且能够理解一件事情做了N遍这个概念. 而我们日常生活中几乎不会有递归思维的出现.举个简单的例子, 即在C/C++中计算一个字符串的长度. 下面转载 2018-02-01 20:40:59 · 20245 阅读 · 1 评论 -
C语言预处理
预处理功能主要包括:宏定义,文件包含,条件编译三部分,分别对应宏定义命令,文件包含命令,条件编译命令三部分实现。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句...转载 2018-02-01 20:35:52 · 402 阅读 · 0 评论