C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......
C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......
C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......
二分查找的代码.
int bfind(int* a,int len,int val)
{
int m = len/2;
int l = 0;
int r = len;
while(l!=m && r!= m)
{
if(a[m] > val)
{
r = m;
m = (m+l)/2;
}
else if(a[m] < val)
{
l = m;
m = (m+r)/2;
}
else
return m;
}
& ......
二分查找的代码.
int bfind(int* a,int len,int val)
{
int m = len/2;
int l = 0;
int r = len;
while(l!=m && r!= m)
{
if(a[m] > val)
{
r = m;
m = (m+l)/2;
}
else if(a[m] < val)
{
l = m;
m = (m+r)/2;
}
else
return m;
}
& ......
1.已知strcpy 函数的原型是:
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy
答案:
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ‘’)
;
return tempptr ;
}
2.已知类String 的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String 的上述4 个函数。
答案:
String::String(const char *str)
{
if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
{
m_data = new char[1] ;
m_data[0] = '' ;
}
else
{
m_data = new char[strlen(str) + 1];
strcpy(m_data,str);
}
}
String::String ......
1.已知strcpy 函数的原型是:
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy
答案:
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ‘’)
;
return tempptr ;
}
2.已知类String 的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String 的上述4 个函数。
答案:
String::String(const char *str)
{
if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
{
m_data = new char[1] ;
m_data[0] = '' ;
}
else
{
m_data = new char[strlen(str) + 1];
strcpy(m_data,str);
}
}
String::String ......
指针是c/c++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在c语言的教学过程中也错误得给学生讲解:\"数组名就是指针\"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着c/c++项目的开发,而身边还一直充满这样的程序员,他们保留着\"数组名就是指针\"的误解。
想必这种误解的根源在于国内某著名的c程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国内的计算机图书编写者们,能以\"深入探索\"的思维方式和精益求精的认真态度来对待图书编写工作,但愿市面上多一些融入作者思考结晶的心血之作!
魔幻数组名
请看程序(本文程序在win32平台下编译):
1. #include <iostream.h>
2. int main(int argc, char* argv[])
3. {
4. char str[10];
5. char *pstr = str;
6. cout << sizeof(str) << endl;
7. cout << sizeof(pstr) << endl;
8. return ......
指针是c/c++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在c语言的教学过程中也错误得给学生讲解:\"数组名就是指针\"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着c/c++项目的开发,而身边还一直充满这样的程序员,他们保留着\"数组名就是指针\"的误解。
想必这种误解的根源在于国内某著名的c程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国内的计算机图书编写者们,能以\"深入探索\"的思维方式和精益求精的认真态度来对待图书编写工作,但愿市面上多一些融入作者思考结晶的心血之作!
魔幻数组名
请看程序(本文程序在win32平台下编译):
1. #include <iostream.h>
2. int main(int argc, char* argv[])
3. {
4. char str[10];
5. char *pstr = str;
6. cout << sizeof(str) << endl;
7. cout << sizeof(pstr) << endl;
8. return ......
Data Type Ranges
C/C++ recognizes the types shown in the table below.
Type Name Bytes Other Names Range of Values
int * signed,
signed int System dependent
unsigned int * unsigned System dependent
__int8 1 char,
signed char –128 to 127
__int16 2 short,
short int,
signed short int –32,768 to 32,767
__int32 4 signed,
signed int –2,147,483,648 to 2,147,483,647
......
Data Type Ranges
C/C++ recognizes the types shown in the table below.
Type Name Bytes Other Names Range of Values
int * signed,
signed int System dependent
unsigned int * unsigned System dependent
__int8 1 char,
signed char –128 to 127
__int16 2 short,
short int,
signed short int –32,768 to 32,767
__int32 4 signed,
signed int –2,147,483,648 to 2,147,483,647
......
Java与C++最大的不同的,Java完全是面向对象的,是由类构成的,而C++是由对象与过程组成。
1、路径:
Java包括一个包package,C++没有;
2、引入类
java import.*.*; C++ include ""';
3、预定义,
C++包括预定义,Java不包括
4、结构
C++包括结构,Java只包括类,结构体可以转化为类。
5、类名与文件名
Java必须有一个类名与文件名相同,C++不必,C++包括定义与说明文件;
6、main
Java中,main包括在主类中,用static说明,C++单独
8、访问控制
Java中每个成员变量与方法用访问控制注明,而C++可以几个成员变量或方法一起注明;
9、继承
Java用extends继承,C++用子类:方问控制 父类
10、输入输出
C++ cin\ print\cout Java BufferReader bf=new BufferReader(InputStreamReader(System.in);
Integer.parseInt(bf.readLine);
System.out.println("The result you entered is:"); ......
Java与C++最大的不同的,Java完全是面向对象的,是由类构成的,而C++是由对象与过程组成。
1、路径:
Java包括一个包package,C++没有;
2、引入类
java import.*.*; C++ include ""';
3、预定义,
C++包括预定义,Java不包括
4、结构
C++包括结构,Java只包括类,结构体可以转化为类。
5、类名与文件名
Java必须有一个类名与文件名相同,C++不必,C++包括定义与说明文件;
6、main
Java中,main包括在主类中,用static说明,C++单独
8、访问控制
Java中每个成员变量与方法用访问控制注明,而C++可以几个成员变量或方法一起注明;
9、继承
Java用extends继承,C++用子类:方问控制 父类
10、输入输出
C++ cin\ print\cout Java BufferReader bf=new BufferReader(InputStreamReader(System.in);
Integer.parseInt(bf.readLine);
System.out.println("The result you entered is:"); ......