精华内容
下载资源
问答
  • C++与C语言的区别

    千次阅读 2011-04-04 17:05:00
    C++和C共同部分就不讲解了(如 常量和变量,循环语句和循环控制,数组和指针等,这里面一些区别会在本节和下节介绍一下),具体可看精华区->新手上路->C语言入门,本文着重介绍C++特点,如类、继承和多重继承...

    注明:以下及其后续内容部分摘自《Standard C++ Bible》,所有程序代码都在Visual Stdio 6.0中编译运行,操作系统为WinXP。本文不涉及VC6.0开发工具的使用,只讲解C++语法知识。

    C++和C的共同部分就不讲解了(如 常量和变量,循环语句和循环控制,数组和指针等,这里面的一些区别会在本节和下节介绍一下),具体可看精华区->新手上路->C语言入门,本文着重介绍C++的特点,如类、继承和多重继承、运算符重载、类模板、C++标准库、模板库、等等。

    一、C++概述

    (一) 发展历史

    1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。

    1985年,C++开始在外面慢慢流行。经过多年的发展,C++已经有了多个版本。为次,ANSI和ISO的联合委员会于1989年着手为C++制定标准。1994年2月,该委员会出版了第一份非正式草案,1998年正式推出了C++的国际标准。

    (二) C和C++

    C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。

    例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。

    C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。

    C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。

    标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。

    C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。

    C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。

    二、关键字和变量

    C++相对与C增加了一些关键字,如下:

    typename bool dynamic_cast mutable namespace

    static_cast using catch explicit new

    virtual operator false private template

    volatile const protected this wchar_t

    const_cast public throw friend true

    reinterpret_cast try

    bitor xor_e and_eq compl or_eq

    not_eq bitand

    在C++中还增加了bool型变量和wchar_t型变量:

    布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。

    #include iostream.h

    int main()

    {

    bool flag;

    flag=true;

    if(flag) cout<<

    return 0;

    }

    C++中还包括wchar_t数据类型,wchar_t也是字符类型,但是是那些宽度超过8位的数据类型。许多外文字符集所含的数目超过256个,char字符类型无法完全囊括。wchar_t数据类型一般为16位。

    标准C++的iostream类库中包括了可以支持宽字符的类和对象。用wout替代cout即可。

    #include iostream.h

    int main()

    {

    wchar_t wc;

    wc='b';

    wout<< P>

    wc='y';

    wout<< P>

    wc='e';

    wout<<

    return 0;

    }

    说明一下:某些编译器无法编译该程序(不支持该数据类型)。

    三、强制类型转换

    有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:

    int* iptr=(int*) &table;

    表达式的前缀(int*)就是传统C风格的强制类型转换说明(typecast),又可称为强制转换说明(cast)。强制转换说明告诉编译器把表达式转换成指定的类型。有些情况下强制转换是禁用的,例如不能把一个结构类型转换成其他任何类型。数字类型和数字类型、指针和指针之间可以相互转换。当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。

    long int el=123;

    short i=(int) el;

    float m=34.56;

    int i=(int) m;

    上面两个都是C风格的强制类型转换,C++还增加了一种转换方式,比较一下上面和下面这个书写方式的不同:

    long int el=123;

    short i=int (el);

    float m=34.56;

    int i=int (m);

    使用强制类型转换的最大好处就是:禁止编译器对你故意去做的事发出警告。但是,利用强制类型转换说明使得编译器的类型检查机制失效,这不是明智的选择。通常,是不提倡进行强制类型转换的。除非不可避免,如要调用malloc()函数时要用的void型指针转换成指定类型指针。

    四、标准输入输出流

    在C语言中,输入输出是使用语句scanf()和printf()来实现的,而C++中是使用类来实现的。

    #include iostream.h

    main() //C++中main()函数默认为int型,而C语言中默认为void型。

    {

    int a;

    cout< cin>>a; /*输入一个数值*/

    cout<<

    return 0;

    }

    cin,cout,endl对象,他们本身并不是C++语言的组成部分。虽然他们已经是ANSI标准C++中被定义,但是他们不是语言的内在组成部分。在C++中不提供内在的输入输出运算符,这与其他语言是不同的。输入和输出是通过C++类来实现的,cin和cout是这些类的实例,他们是在C++语言的外部实现。

    在C++语言中,有了一种新的注释方法,就是‘//’,在该行//后的所有说明都被编译器认为是注释,这种注释不能换行。C++中仍然保留了传统C语言的注释风格/*……*/。

    C++也可采用格式化输出的方法:

    #include iostream.h

    int main()

    {

    int a;

     

    六、函数重载

    在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。

    1.参数个数不同

    #include iostream.h

    void a(int,int);

    void a(int);

    int main()

    {

    a(5);

    a(6,7);

    return 0;

    }

    void a(int i)

    {

    cout<<

    }

    void a(int i,int j)

    {

    cout<<<>

    }

    2.参数格式不同

    #include iostream.h

    void a(int,int);

    void a(int,float);

    int main()

    {

    a(5,6);

    a(6,7.0);

    return 0;

    }

    void a(int i,int j)

    {

    cout<<<>

    }

    void a(int i,float j)

    {

    cout<<<>

    }

    七、变量作用域

    C++语言中,允许变量定义语句在程序中的任何地方,只要在是使用它之前就可以;而C语言中,必须要在函数开头部分。而且C++允许重复定义变量,C语言也是做不到这一点的。看下面的程序:

    #include iostream.h

    int a;

    int main()

    {

    cin>>a;

    for(int i=1;i<=10;i++) //C语言中,不允许在这里定义变量

    {

    static int a=0; //C语言中,同一函数块,不允许有同名变量

    a+=i;

    cout<<::a<< <<

    }

    return 0;

    }

    八、new和delete运算符

    在C++语言中,仍然支持malloc()和free()来分配和释放内存,同时增加了new和delete来管理内存。

    1.为固定大小的数组分配内存

    #include iostream.h

    int main()

    {

    int *birthday=new int[3];

    birthday[0]=6;

    birthday[1]=24;

    birthday[2]=1940;

    cout<<>

    <<<' P ?<<<

    delete [] birthday; //注意这儿

    return 0;

    }

    在删除数组时,delete运算符后要有一对方括号。

    2.为动态数组分配内存

    #include iostream.h

    #include stdlib.h

    int main()

    {

    int size;

    cin>>size;

    int *array=new int[size];

    for(int i=0;i< P>

    array[i]=rand();

    for(i=0;i< P>

    cout<<'/n'<< P>

    delete [] array;

    return 0;

    }

    九、引用型变量

    在C++中,引用是一个经常使用的概念。引用型变量是其他变量的一个别名,我们可以认为他们只是名字不相同,其他都是相同的。

    1.引用是一个别名

    C++中的引用是其他变量的别名。声明一个引用型变量,需要给他一个初始化值,在变量的生存周期内,该值不会改变。& 运算符定义了一个引用型变量:

    int a;

    int& b=a;

    先声明一个名为a的变量,它还有一个别名b。我们可以认为是一个人,有一个真名,一个外号,以后不管是喊他a还是b,都是叫他这个人。同样,作为变量,以后对这两个标识符操作都会产生相同的效果。

    #include iostream.h

    int main()

    {

    int a=123;

    int& b=a;

    cout<<<','<< <<','<< <<','<<

     

    a++;

    cout<

    b++;

    cout<

    return 0;

    }

    2.引用的初始化

    和指针不同,引用变量的值不可改变。引用作为真实对象的别名,必须进行初始化,除非满足下列条件之一:

    (1) 引用变量被声明为外部的,它可以在任何地方初始化

    (2) 引用变量作为类的成员,在构造函数里对它进行初始化

    (3) 引用变量作为函数声明的形参,在函数调用时,用调用者的实参来进行初始化

    3.作为函数形参的引用

    引用常常被用作函数的形参。以引用代替拷贝作为形参的优点:

    引用避免了传递大型数据结构带来的额外开销

    引用无须象指针那样需要使用*和->等运算符

    #include iostream.h

    void func1(s p);

    void func2(s& p);

    struct s

    {

    int n;

    char text[10];

    };

    int main()

    {

    static s str={123,China};

    func1(str);

    func2(str);

    return 0;

    }

    void func1(s p)
    {
    cout<<P.N<<ENDL;
    cout<<P.TEXT<<ENDL;
    }

    void func2(s& p)
    {
    cout<<P.N<<ENDL;
    cout<<P.TEXT<<ENDL;
    }

    从表面上看,这两个函数没有明显区别,不过他们所花的时间却有很大差异,func2()函数所用的时间开销会比func2()函数少很多。它们还有一个差别,如果程序递归func1(),随着递归的深入,会因为栈的耗尽而崩溃,但func2()没有这样的担忧。
    4.
    以引用方式调用
    当函数把引用作为参数传递给另一个函数时,被调用函数将直接对参数在调用者中的拷贝进行操作,而不是产生一个局部的拷贝(传递变量本身是这样的)。这就称为以引用方式调用。把参数的值传递到被调用函数内部的拷贝中则称为以传值方式调用。

    #include iostream.h

    void display(const Date&,const char*);
    void swapper(Date&,Date&);

    struct Date
    {
    int month,day,year;
    };

    int main()
    {
    static Date now={2,23,90};
    static Date then={9,10,60};
    display(now,Now: );
    display(then,Then: );
    swapper(now,then);
    display(now,Now: );
    display(then,Then: );
    return 0;
    }

    void swapper(Date& dt1,Date& dt2)
    {
    Date save;
    save=dt1;
    dt1=dt2;
    dt2=save;
    }

    void display(const Date& dt,const char *s)
    {
    cout<<S;
    cout<<DT.MONTH<<' ?<<dt.year<<endl;
    }

    5.
    以引用作为返回值

    #include iostream.h

    struct Date
    {
    int month,day,year;
    };
    Date birthdays[]=
    {
    {12,12,60};
    {10,25,85};
    {5,20,73};
    };

    const Date& getdate(int n)
    {
    return birthdays[n-1];
    }

    int main()
    {
    int dt=1;
    while(dt!=0)
    {
    cout<<<endl;
    cin>>dt;
    if(dt>0 && dt<4)
    {
    const Date& bd=getdate(dt);
    cout<<BD.MONTH<<' ?<<bd.year<<endl;
    }
    }
    return 0;
    }
    程序都很简单,就不讲解了。

    展开全文
  • C++与C语言的区别

    千次阅读 2012-07-31 12:07:57
    注明:以下及其后续内容部分...C++和C共同部分就不讲解了(如 常量和变量,循环语句和循环控制,数组和指针等,这里面一些区别会在本节和下节介绍一下),具体可看精华区->新手上路->C语言入门,本文着重介绍C++

    注明:以下及其后续内容部分摘自《Standard C++ Bible》,所有程序代码都在Visual Stdio 6.0中编译运行,操作系统为WinXP。本文不涉及VC6.0开发工具的使用,只讲解C++语法知识。
    C++和C的共同部分就不讲解了(如 常量和变量,循环语句和循环控制,数组和指针等,这里面的一些区别会在本节和下节介绍一下),具体可看精华区->新手上路->C语言入门,本文着重介绍C++的特点,如类、继承和多重继承、运算符重载、类模板、C++标准库、模板库、等等。


    一、C++概述
    (一) 发展历史
    1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。
    1985年,C++开始在外面慢慢流行。经过多年的发展,C++已经有了多个版本。为次,ANSI和ISO的联合委员会于1989年着手为C++制定标准。1994年2月,该委员会出版了第一份非正式草案,1998年正式推出了C++的国际标准。
    (二) C和C++
    C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。
    例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。
    C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。
    C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
    标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
    C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
    C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。

    二、关键字和变量
    C++相对与C增加了一些关键字,如下:

    typename bool dynamic_cast mutable namespace
    static_cast using catch explicit new
    virtual operator false private template
    volatile const protected this wchar_t
    const_cast public throw friend true
    reinterpret_cast try
    bitor xor_e and_eq compl or_eq
    not_eq bitand

    在C++中还增加了bool型变量和wchar_t型变量:
    布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。

    #include iostream.h
    int main()
    {
    bool flag;
    flag=true;
    if(flag) cout<<true<<endl;
     return 0;
    }

    C++中还包括wchar_t数据类型,wchar_t也是字符类型,但是是那些宽度超过8位的数据类型。许多外文字符集所含的数目超过256个,char字符类型无法完全囊括。wchar_t数据类型一般为16位。
    标准C++的iostream类库中包括了可以支持宽字符的类和对象。用wout替代cout即可。

    #include iostream.h
    int main()
    {
    wchar_t wc;
    wc='b';
    wout<<wc;
     wc='y';
    wout<<wc;
     wc='e';
    wout<<wc<<endl;
     return 0;
    }

    说明一下:某些编译器无法编译该程序(不支持该数据类型)。

    三、强制类型转换
    有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:

    int* iptr=(int*) &table;
    表达式的前缀(int*)就是传统C风格的强制类型转换说明(typecast),又可称为强制转换说明(cast)。强制转换说明告诉编译器把表达式转换成指定的类型。有些情况下强制转换是禁用的,例如不能把一个结构类型转换成其他任何类型。数字类型和数字类型、指针和指针之间可以相互转换。当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。

    long int el=123;
    short i=(int) el;

    float m=34.56;
    int i=(int) m;

    上面两个都是C风格的强制类型转换,C++还增加了一种转换方式,比较一下上面和下面这个书写方式的不同:

    long int el=123;
    short i=int (el);

    float m=34.56;
    int i=int (m); 

    使用强制类型转换的最大好处就是:禁止编译器对你故意去做的事发出警告。但是,利用强制类型转换说明使得编译器的类型检查机制失效,这不是明智的选择。通常,是不提倡进行强制类型转换的。除非不可避免,如要调用malloc()函数时要用的void型指针转换成指定类型指针。

    四、标准输入输出流
    在C语言中,输入输出是使用语句scanf()和printf()来实现的,而C++中是使用类来实现的。

    #include iostream.h
    main() //C++中main()函数默认为int型,而C语言中默认为void型。
    {
    int a;
    cout<<input a="" number:="" ;
     cin>>a; /*输入一个数值*/
    cout<<a<<endl; 输出并回车换行
     return 0;
    }

    cin,cout,endl对象,他们本身并不是C++语言的组成部分。虽然他们已经是ANSI标准C++中被定义,但是他们不是语言的内在组成部分。在C++中不提供内在的输入输出运算符,这与其他语言是不同的。输入和输出是通过C++类来实现的,cin和cout是这些类的实例,他们是在C++语言的外部实现。
    在C++语言中,有了一种新的注释方法,就是‘//’,在该行//后的所有说明都被编译器认为是注释,这种注释不能换行。C++中仍然保留了传统C语言的注释风格/*……*/。
    C++也可采用格式化输出的方法:

    #include iostream.h
    int main()
    {
    int a;
    cout<<input a="" number:="" ;
     cin>>a;
    cout<<dec<<a<<' '="" 输出十进制数
     <<oct<<a<<' '="" 输出八进制数
     <<hex<<a<<endl; 输出十六进制数
     return 0;
    }
    从上面也可以看出,dec,oct,hex也不可作为变量的标识符在程序中出现。

    五、函数参数问题
    (一) 无名的函数形参
    声明函数时可以包含一个或多个用不到的形式参数。这种情况多出现在用一个通用的函数指针调用多个函数的场合,其中有些函数不需要函数指针声明中的所有参数。看下面的例子:

    int fun(int x,int y)
    {
    return x*2;
    }

    尽管这样的用法是正确的,但大多数C和C++的编译器都会给出一个警告,说参数y在程序中没有被用到。为了避免这样的警告,C++允许声明一个无名形参,以告诉编译器存在该参数,且调用者需要为其传递一个实际参数,但是函数不会用到这个参数。下面给出使用了无名参数的C++函数代码:

    int fun(int x,int) //注意不同点
    {
    return x*2;
    }
    (二) 函数的默认参数
    C++函数的原型中可以声明一个或多个带有默认值的参数。如果调用函数时,省略了相应的实际参数,那么编译器就会把默认值作为实际参数。可以这样来声明具有默认参数的C++函数原型:

    #include iostream.h
    void show(int=1,float=2.3,long=6);

    int main()
    {
    show();
    show(2);
    show(4,5.6);
    show(8,12.34,50L);
    return 0;
    }

    void show(int first,float second,long third)
    {
    cout<<first=<<first
     <<second=<<second
     <<third=<<third<<endl;
     }

    上面例子中,第一次调用show()函数时,让编译器自动提供函数原型中指定的所有默认参数,第二次调用提供了第一个参数,而让编译器提供剩下的两个,第三次调用则提供了前面两个参数,编译器只需提供最后一个,最后一个调用则给出了所有三个参数,没有用到默认参数。
    展开全文
  • 1。在c++中,如果用malloc...在类中,变量不能定义成static int这样类型,不然会报错,这个具体原因还不清楚,我是在类中定义static 型变量,然后在构造函数中初始化,就会出现错误,还望高手指点。以上环境是v

    1。在c++中,如果用malloc分配内存,要强制转换一下,其实就是void类型向其他类型需要强制转换。

    2。在c++中,int类型的变量不能向enum类型的变量 直接赋值,也需要强制转换一下。

    3。在类中,变量不能定义成static int这样的类型,不然会报错,这个具体原因还不清楚,我是在类中定义的static 型变量,然后在构造函数中初始化,就会出现错误,还望高手指点。

    以上的环境是vc6.0下

    展开全文
  • c语言与C++的区别.docx

    2020-03-09 13:38:19
    注明以下及其后续内容部分摘自Standard C++ Bible所有程序代码都在 Visual Stdio 6.0 中编译运行操作系统为 WinXP本文不涉及 VC6.0 开发工具使用只讲解 C++语法知 识 C++和 C 共同部分就不讲解了如 常量和变量...
  • VC编译器GCC编译器的区别

    千次阅读 2019-03-12 14:49:12
    首先,所谓语法区别是针对程序设计语言而言的,这里首先你要分清楚它们之间的区别。 Gcc:它是一款开源的C语言编译器,原来只能在Linux系统上使用,后来移植到了Windows操作系统上,以此为基础的编译环境典型的又...

    首先,所谓语法区别是针对程序设计语言而言的,这里首先你要分清楚它们之间的区别。
    Gcc:它是一款开源的C语言编译器,原来只能在Linux系统上使用,后来移植到了Windows操作系统上,以此为基础的编译环境典型的又MinGW。
    它不是编程语言,所以没有语法这一说。G++:和GCC一个性质,只不过它是针对C++语言的。
    VC:它有两种解释:
    1.即VC本身,是微软公司推出的一款C++编译器,Visual C++开发环境就是以此为基础。
    2.即Visual C++,与其说它是独立的一门编程语言,不如说是C++语言的微软公司版本,微软公司对单纯的C++语言做了扩充,更好的进行Windows编程和可视化编程等。这里能谈得上语法的只能是VC当中的Visual C++了,它和标准C++中大部分语法是一样的。

    今天无意写了一段代码,发现了VC编译器与GUN的gcc编译器还是存在区别的。毕竟GCC支持的是标准C。

        #include <stdio.h>  
          
        struct Node  
        {  
            int value;  
            struct Node *next;  
        };  
        int main()  
        {  
            struct Node a;  
            a.value = 1;  
            return 0;  
        }

    则通过标准C编译,因为此处Node的作用就是一个标签。除非使用typedef才可以作为类型直接使用。否则标签前面还是要加上struct关键字。上述代码在GCC下是编译失败的,提示的错误:uknown typename 'Node'.但是放到VC编译器下则顺利编译通过。
    于是按照标准C写了另外一个版本。

    下面是使用typedef创建的类型名,但是需要定义一个标签来致命结构体内部的指针。

        #include <stdio.h>  
          
        typedef struct   
        {  
            int value;  
            struct Node *next;  
        }Node;  
        int main()  
        {  
            Node a;  
            a.value = 1;  
            return 0;  
        }

    说明在结构体内部声明指向结构体自身的指针使用标签形式,是因为标签没有声明。在标签前面添加struct则认为此处声明是合法的一个指针,但是由于标签未声明则此指针具体指向什么类型的结构体则是不知道的,此处是有隐患的,只是通过了语法检测而已。不过下面这种方式在GCC编译也通过

    根据上述推测,我写了另外一个版本

        #include <stdio.h>  
          
        typedef struct   
        {  
            int value;  
            struct Node1 *next;  
        }Node;  
        int main()  
        {  
            Node a;  
            a.value = 1;  
            return 0;  
        }

    此版本仍然可以通过GCC编译,说明猜测是正确的。此处涉及到了不完整声明。可参照《C和指针》P199.

    展开全文
  • VC 会把未初始化栈内存全部填成 0xcc,当字符串看就是 烫烫烫烫…… 会把未初始化堆内存全部填成 0xcd,当字符串看就是 屯屯屯屯…… 2. VS不可以char *p=“abcd” 注意:编译器是把"abcd"作为“abcd\0”...
  • #include""都可以将指定文件中内容引入到当前文件,但是二者在搜索被引用文件时搜索策略不同: (1)#include<>直接从编译器指定路径出搜索,找不到直接报错。即库目录C:Program Files\Microsoft ...
  • 说起结构struct,大家不会陌生,c语言中常用一种数据类型,说起它长度,也没啥新鲜,不外乎把成员变量之长度加起来,聪明一点还会接着告诉你,这是它和union一大区别。近日来笔者鸟枪换炮,用上了vc5.0,...
  • 这个版本编译器是x86版本的C语言,所以在某些方面会和最新版本的C语言有些区别,在下面叙述中我会做出标注。 下面是软件图标 1.1下载vc2010下载器;解压,运行 链接:...
  • SQL全名是结构化查询语言,MySQL是关系数据库,是软件,这是两者最根本的区别,相当于C和vc6.0的区别,一种是语言,一种是基于这种语言的软件。MySQL是基于SQL标准的数据库管理软件。您可以编写SQL语句、练习SQL、...
  • C语言的发展过程  C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为...
  • C语言笔记

    2011-06-08 10:35:00
    1.换行问题导致预期效果会不一样2.“=”“==”错误,成功用!=0来表示3.编译器分解符号按照从左到右...5.‘ga’ “ga” 区别 ,‘ga’ 编译器处理会不一样,VC 是后一个覆盖前一个,从左向右6. int *p,a;
  • 以下表述可能一些资料有区别或者说你原来认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要,win7+vc6.0,一个极其平民化实验环境。本文中使用源代码大部分来自于网络,稍加修改作为例证。...
  • C,C++,VC, VC++,MFC有什么区别

    千次阅读 2019-04-21 12:57:41
    概念是对具体一种抽象,因此,弄懂概念很重要,很多人总是混淆下面这些概念:C,C++,VC,VC++,MFC. 下面,我们来看看这些概念有什么区别: C: C语言, 一门计算机语言,用于人计算机沟通。 C++:C++语言, ...
  • 首先说说我写这篇日志的目的:对于大部分编程的人来说学c语言应该都从vc的(当然也有用tc的),但我觉得这里面有很大一部分朋友并不知道其实你一直用c++的编译器去编c和运行c语言的代码。当然c++是支持绝大部分的c的,...
  • ===的区别C语言中==是关系运算符易犯得错误是 if (a=b then c=a; 2. 没有使用复合语句 记住一点凡是需要两条或多条语句完成的工作一定用花 括号表示出来 3. 嵌套关系错误 如果你能用N-S图画出流程就不会犯这类...
  • 2. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。 (1)有返回值函数  此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如...
  • 12.5.3 使用字符指针字符数组的区别 12.6 指针数组命令行参数 12.6.1 指针数组的定义和使用 12.6.2 指向指针的指针 12.6.3 指针数组作为main()函数的命令行参数 12.7 指针小结 12.7.1 指针概念综述 12.7.2 ...
  • 3. 位运算是C语言的一种特殊运算功能, 它是以二进制位为单位进行运算的。位运算符只有逻辑运算和移位运算两类。位运算符可以赋值符一起组成复合赋值符。如&=,|=,^=,>>=,等。 4. 利用位运算可以完成汇编语言的...
  • C语言数组首地址和数组名取地址区别 2010年11月24日 11:51 申明:本文系原创,转载时请注明出处,本人保留追究责任权利。 原文地址:...
  • 以下表述可能一些资料有区别或者说你原来认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要,winxp+vc6.0,一个极端平民化实验环境。本文中使用源代码大部分来自于网络,我稍加修改作为...
  • 在C99标准(详情请猛击:C语言的发展及其版本)中,增加了对64位长整型数据的支持,它的类型就是 long long,占用8个字节。由于C99标准发布较晚,一些较老的C/C++编译器不支持,新编译器对C99的响应也没有想象地积极...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

vc与c语言的区别

c语言 订阅