c_c++基础问题(平时读书时笔记)
程序启动 跟程序运行的区别,启动的时候不用加载动态链接库,运行的时候需要查找动态链接库中函数
1 x = x +1 ,x += 1, x ++ 那个效率最高?
{
public :
A() {}
A( int value ) : m_value( value ) {}
A( A other ) { m_value = other.m_value; }
private :
int m_value;
};
int main( void )
{
A a;
A b( a );
return 0;
}
{
assert( strDst != NULL && strSrc != NULL );
char *dst = strDst;
while( *strDst++ = *strSrc++ )
;
*strDst = '\0';
return dst;
}
void test1()
{
char string[10];
char* str1 = "0123456789"; //strlen(str1) = 11
strcpy( string, str1 ); //strlen(string) = 10< strlen(str1) = 11,拷贝字符串时导致数组string溢出,不能正确地将str1复制到string数组中
void test2()
{
char string[10], str1[10];
int i;
{
str1[i] = 'a'; //字符串str不能在循环中结束
}
strcpy( string, str1 ); //str1字符数组中没有'\0',不满足strcpy函数形参的要求,不能正确的完成将str1复制到string中
}
void test3(char* str1)
{
char string[10];
if( strlen( str1 ) <= 10 ) //应该讲条件判断语句改为strlen(str1) < 10,因为strlen(str1)求的长度中不包括'\0'
{
strcpy( string, str1 );
}
{
p = (char *) malloc( 100 );
}
void Test( void )
{
char *str = NULL;
GetMemory( str ); //此时实参str仍然没有变化,即str = NULL,所以不能将一个字符串复制到空指针
strcpy( str, "hello world" );
printf( str );
}
char *GetMemory( void )
{
char p[] = "hello world"; //数组p为函数内部的局部变量,当函数结束时,p所存储的内容也就释放掉啦,此时指针p指向的位置不能确定,有可能是系统区
return p;
}
void Test( void )
{
char *str = NULL;
str = GetMemory(); //打印str的信息不能确定
printf( str );
}
void GetMemory( char **p, int num )
{
*p = (char *) malloc( num ); //没有进行对str是否分配成功的判断
//if( p == NULL )
void Test( void )
{
char *str = NULL;
GetMemory( &str, 100 );
strcpy( str, "hello" ); //未释放申请的内存空间,导致内存泄露
printf( str );
}
void Test( void )
{
char *str = (char *) malloc( 100 ); //没有进行对str是否分配成功的判断
strcpy( str, "hello" );
free( str );
... //省略的其它语句
}
{
int * p; //指针p没有初始化,没有指向确定的内存空间,是一个野指针,将其改为 int p;就可以啦
*p = *p1; // p = *p1;
*p1 = *p2; // *p1 = *p2;
*p2 = *p; // *p2 = p;
}
#define __INCvxWorksh
#ifdef __cplusplus
extern "C" {
#endif
/*...*/
#ifdef __cplusplus
}
#endif
#endif /* __INCvxWorksh */
#define __INCvxWorksh
#ifdef __cplusplus
就是指程序执行前的一些预处理工作,主要指#表示的.
何时需要预编译?
1)、总是使用不经常改动的大型代码体。
答:#include "memory.h"
memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为' '或'';例:char a[100];memset(a, '', sizeof(a));
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。
答:ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。
(1)不能返回局部变量的引用。
(2)不能返回函数内部new分配的内存的引用。
(3)可以返回类成员的引用,但最好是const。
(4)流操作符重载返回值申明为“引用”的作用:
流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、
c_c++基础问题(平时读书时笔记)的更多相关文章
- 《python编程从入门到实践》读书实践笔记(一)
本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- MySQL基础之事务编程学习笔记
MySQL基础之事务编程学习笔记 在学习<MySQL技术内幕:SQL编程>一书,并做了笔记.本博客内容是自己学了<MySQL技术内幕:SQL编程>事务编程一章之后,根据自己的理 ...
- Java基础技术JVM面试【笔记】
Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管 ...
- java基础技术集合面试【笔记】
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...
- 《python编程从入门到实践》读书实践笔记(二)
本文是<python编程从入门到实践>读书实践笔记11章的内容,主要包含测试,为体现测试的重要性,独立成文. 11 测试代码 写在前面的话,以下是我这些年开发中和测试相关的血泪史. 对于一 ...
- 《jQuery基础教程》读书笔记
最近在看<jQuery基础教程>这本书,做了点读书笔记以备回顾,不定期更新. 第一章第二章比较基础,就此略过了... 第三章 事件 jQuery中$(document).ready()与j ...
- Python基础教程【读书笔记】 - 2016/8/3
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十一波:第11章 文件和素材 本章更进一步,让程序能够接触更多的领域:文件和流.接下来介绍的函数和对象可以让你在程序 ...
- Python基础教程【读书笔记】 - 2016/7/31
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章 充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...
随机推荐
- 一些通用的触发移动App崩溃的测试场景
一些通用的触发移动App崩溃的测试场景,如下: 1 验证在有不同的屏幕分辨率,操作系统和运营商的多个设备上的App行为. 2 用新发布的操作系统版本验证App的行为. 3 验证在如隧道,电梯等网络质量 ...
- Python 小知识点(6)--静态方法、类方法、属性方法
(1)静态方法-->-@staticmethod装饰类中方法 只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性 class Dog(object): def __init__ ...
- CentOS6上安装Flash Player
Linux CentOS6服务器中的某个需要远程操作的项目需要使用到Adobe Flash Player组件,直接通过YUM方式安装不了,于是通过强大的搜索,还是可以解决到安装方法的,通过重新加载安装 ...
- 3DMAX 处理反面
问题起源:从3DMAX导出一个模型为FBX后,在U3D中看到模型很奇怪的透视了,能看到背面看不到正面,这不法线问题,而是面反了. 即然是面反了,为什么在MAX中看起来是正确的呢? 应该是开启了双面模式 ...
- 4.2 最邻近规则分类(K-Nearest Neighbor)KNN算法应用
1 数据集介绍: 虹膜 150个实例 萼片长度,萼片宽度,花瓣长度,花瓣宽度 (sepal length, sepal width, petal length and petal wi ...
- 自动补齐flexselect+级联下拉框案例
在开发web应用时,经常遇到类似省市区级联下拉框操作,即选中省份自动级联加载该省份所有的市,选中市自动级联加载该市所有的区:假设省市区的数据量很大,此时用户想选中某市,因而要从上往下查找,可能半天都找 ...
- TreeView绑定
) { return; } foreach (NodeInfo info in list) ...
- java web框架发展的新趋势--跨界轻型App
“跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...
- style多次设置行内样式
语法 style="font-size:32px;background-color:#aaa"
- Opencv 亚像素级别角点检测
Size winSize = Size(5,5); Size zerozone = Size(-1,-1); TermCriteria tc = TermCriteria(TermCriteria:: ...