1.字符串查找字符函数strchr

strchr函数原型:extern char*strchr(const char *s,char c);

功能:查找字符数组s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,返回偏移指针地址,如果s中不存在c则返回NULL。

#include <string.h>
#include <stdio.h>
int main(void)
{
char string[17];
char *ptr,c='r';
strcpy(string,"This is a string");
ptr=strchr(string,c);
if(ptr)
printf("Thecharacter%cisatposition:%s\n",c,ptr);
else
printf("Thecharacterwasnotfound\n");
return0;
}
     运行结果:The character r is at position: ring

注意:此功能可以用于,利用指针循环更改某个字符数组各位置的字符

2.返回指针类型

倘若在子函数中定义的指针指向的对象且将指针返回时,由于变量存在于栈中,调用结束自动释放,会导致程序错误。可以使用:

(1)使用使用new在堆上动态分配内存,然后将其返回。返回时不会摧毁,因为堆是全局存在的。

(2)定义局部静态指针,将其返回。

(3)将局部char指针返回,赋值给string 对象。此时调用拷贝构造函数,不会引起内存泄露。

(4)定义返回类型为常量指针,然后将局部指针返回。

3.标准输出流

"标准库定义了4个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也成为标准输入。处理输出时使用命名为cout的ostream类型对象,这个对象也称为标准输出。标准库还定义了另外两个ostream对象,分别命名为cerr和clog。

cout先缓冲后输出。缓冲区的目的,就是减少刷屏的次数。cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否满了,都立即输出流中所有数据,然后插入一个换行符

cerr对象又叫标准错误,通常用来输出警告和错误信息给程序的使用者。cerr不经过缓冲而直接输出,一般用于迅速输出出错信息,是标准错误,默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向。cerr。其目的,就是在你最需要它的紧急情况下,还能得到输出功能的支持。

clog对象用于产生程序执行的一般信息。clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出。

4.其它

       1.线性表有顺序表和链表两种存储结构。
         顺序表:结点存放地址连续的存储单元。
        链式表:任意的存储单元存放,这组存储单元可连续可不连续。

2.低位低地址为小端存储,高位低地址为大端存储。

3.static 修饰变量一共有二种用法

      修饰全局变量,只可以被本文件调用,其它文件不能使用。
修饰局部变量,在函数内部定义,当函数结束时,static修饰的变量内存不释放。即此时相当于全局变量。包括存在于非main函数的子函数。

4.'a'-'A'=32

    5.关于C#的构造函数:
          ❶构造函数默认私有,C#中必须显式说明public(这一点不同于Java和C++)。可以带参数或不带。系统能够提供不带参的默认构造函数。但是在显式声明了其它构造函数的时候不会自动提供(类似Java),且在声明了非公有的构造函数的时候也不会。
          ❷构造函数可以私有,存在于只包含静态成员的类中。若一个类只有私有构造函数而无能够运行的公有构造函数,则无法创建实例(嵌套类可以)。
          ❸构造函数可以静态,无参无修饰符,至多运行一次且不可继承。若类中有静态成员,则自动提供静态默认构造函数。且仅当存在能够运行的public实例构造函数(不管有参无参)的时候,该静态构造函数才会运行。此时创建实例的时候,先自动运行静态构造函数,再运行实例对应的构造函数。

6.操作链表时,涉及到链表的增删等,由于有可能节点头指针的指向要改变,因此传图头指针参数时,应该使用双重指针或者指针引用。且必须同时检查p和*p是否为空

参考

1.C#构造函数

2.C++中cout和cerr的区别

C++知识点总结(三)的更多相关文章

  1. Java 面试知识点解析(三)——JVM篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  2. CSS知识点(三)

    十三.标准文档流. 标准文档流下有哪些微观现象? 1.空白折叠现象 多个空格会被合并成一个空格显示到浏览器页面中.img标签换行写.会发现每张图片之间有间隙,如果在一行内写img标签,就解决了这个问题 ...

  3. crm作业知识点集合[三]

    知识点1 我们要实现一个这样的功能,在学生表中,可以查看每个学生的报名的班级的所有的成绩,就是下图的效果 1.首先我们需要在学生表中自定义一列,这一列的内容就是一个a标签,指向另外一个页面,而我们在另 ...

  4. Hibernate知识点小结(三)-->一对多与多对多配置

    一.多表关系与多表设计 1.多表关系        一对一:            表的设计原则(分表原则):                优化表的性能                基于语意化分表 ...

  5. C/C++编程笔记:C语言入门知识点(三),请收藏C语言最全笔记!

    今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可 ...

  6. Java面试常见知识点总结(三)

    21.volatile关键字: 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:   (1) 保证了不同线程对这个变量进行操作时的可见性,即一个线程 ...

  7. iOS 常见知识点(三):Lock

    iOS 常见知识点(一):Runtime iOS 常见知识点(二):RunLoop 锁是最常用的同步工具.一段代码段在同一个时间只能允许被有限个线程访问,比如一个线程 A 进入需要保护代码之前添加简单 ...

  8. 前端新人学习笔记-------html/css/js基础知识点(三)

    这断时间家里有点事,上班也有点任务,所以几天没看视频没来更新了.今天来更新一下了. 一:默认样式重置 但凡是浏览默认的样式,都不要使用. body,p,h1,h2,h3,h4,h5,h6,dl,dd{ ...

  9. 模板引擎(smarty)知识点总结三

    阔别了几个月,小杨又来分享php知识.话不多说,言归正传,今天继续带来smarty的知识点. -----------------smarty  assign append 详解 对于这两个的区别和联系 ...

  10. Java基础知识点(三)

    前言:准备将Java基础知识点总结成一个系列,用于平常复习并加深理解.每篇尽量做到短小精悍,便于阅读. 1.Math类中相关函数 Math.floor(x):返回不大于x的最大整数.eg:Math.f ...

随机推荐

  1. QT5的QDesktopSerivices不同

    QT4使用QDesktopServices::storageLocation(QDesktopServices::xxxx)来获取一些系统目录, 现在则要改成QStandardPaths::writa ...

  2. python spark

    http://blog.jobbole.com/86232/ 1. 安装lib 材料: spark : http://spark.apache.org/downloads.html hadoop :  ...

  3. GUI菜单——菜单条、菜单、子条目之间关系

    菜单:注意区分三个概念:菜单条.菜单.菜单项 将菜单条添加到窗体,菜单条下面包括菜单,菜单下面可以使菜单或者菜单项 菜单项是最后一个.菜单后面有三角标示. 菜单条[文件] 子菜单--子条目 子条目 示 ...

  4. P4388 付公主的矩形(gcd+欧拉函数)

    P4388 付公主的矩形 前置芝士 \(gcd\)与欧拉函数 要求对其应用于性质比较熟,否则建议左转百度 思路 有\(n×m\)的矩阵,题目要求对角线经过的格子有\(N\)个, 设函数\(f(x,y) ...

  5. apache中配置php支持模块模式、cgi模式和fastcgi模式的实验

    首先安装apache.mysql和php,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了 ...

  6. Java集合类--->入门上篇

    最近我又在研究Java语言,这是第五次还是第六次学习Java的集合类,你也许会惊讶为什么这么多次?哈哈,因为之前的我没有记录下来,忘记了,当然最主要还是觉得自己毅力不够,没有坚持.那么,这次我将换一种 ...

  7. nodejs stream & buffer 互相转换

    stream 转 buffer function streamToBuffer(stream) { return new Promise((resolve, reject) => { let b ...

  8. Mex混合编程专题二:MEX Hello Word

    VS2010中写mex入门级工程代码 接着上一篇文章的工程继续,如下代码: #include "stdafx.h" #include "mextest.h" # ...

  9. linux命令学习笔记(10):cat 命令

    cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示, 或者从标准输入读取内容并显示,它常与重定向符号配合使用. .命令格式: cat [选项] [文件] ...

  10. php各种验证类

    <?php /**  * 验证类  *  */ class VerifyAction{     /**      * 是否为空值      */       public static func ...