c语言与c++语言的区别?和快速掌握基本语法上手
一、c语言和c++语言的区别
c语言是一种结构化程序设计语言,侧重于如何设计一个过程(输入运算到输出),强调算法和数据结构
c++语言是面向对象的语言,侧重于如何构造一个与描述问题相对应的对象模型,融入了抽象设计
二、快速掌握基本语法
(一)c语言
1.程序结构
2.基本语法、数据类型、变量和常量、运算符
#include <stdio.h>
//预处理器指令,告诉c编译器编译前需要stdio.h文件
//预处理器
#define WIDTH 5
//函数声明
int fun();
int main()
{
//运算符(算术、逻辑、关系、位、赋值、杂项运算符(sizeof、&取地址、*取指向变量的值)、三元运算符))
int i=1;
int* asp;
asp=&i;
int a=60;
int b=30;
int c=0;
c= a&b;//位运算符 & | >> << ~ ^
//定义变量:数据类型,初始化值
type variable_name = value;
/* 打印语句*/
printf("Hello, World! \n");
//函数调用
int i=fun();
return 0;
//终止main()函数,返回值是0
}
int fun(){}
3.结构(判断、循环、函数)
#include <stdio.h>
int main ()
{
if(boolean_expression 1)
{
/* 当布尔表达式 1 为真时执行 */
}
else if( boolean_expression 2)
{
/* 当布尔表达式 2 为真时执行 */
}
/* 局部变量定义 */
char grade = 'B';
switch(grade)
{
case 'A' :
printf("很棒!\n" );
break;
case 'B' :
case 'C' :
printf("做得好\n" );
break;
default :
printf("无效的成绩\n" );
}
//循环(while、for、do....while)
/* while 循环执行 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
}
/* for 循环执行 */
for( int a = 10; a < 20; a = a + 1 )
{
printf("a 的值: %d\n", a);
}
/* do 循环执行 */
do
{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 );
return 0;
}
函数:值传递和引用传递
传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
引用调用 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
#include <stdio.h>
/* 函数声明 */
void swap(int *x, int *y);
int main ()
{
/* 局部变量定义 */
int a = 100;
int b = 200;
printf("交换前,a 的值: %d\n", a );
printf("交换前,b 的值: %d\n", b );
/* 调用函数来交换值
* &a 表示指向 a 的指针,即变量 a 的地址
* &b 表示指向 b 的指针,即变量 b 的地址
*/
swap(&a, &b);
printf("交换后,a 的值: %d\n", a );
printf("交换后,b 的值: %d\n", b );
return 0;
}
4.数组、指针、字符串、结构体
数组:double balance[10];
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。
int var = 20; /* 实际变量的声明 */
int ip; / 指针变量的声明 /
ip = &var; / 在指针变量中存储 var 的地址 */
字符串:char greeting[] = “Hello”;
结构体:
#include <stdio.h>
#include <string.h>
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main( )
{
struct Books Book1; /* 声明 Book1,类型为 Book */
struct Books Book2; /* 声明 Book2,类型为 Book */
/* Book1 详述 */
strcpy( Book1.title, "C Programming");
strcpy( Book1.author, "Nuha Ali");
strcpy( Book1.subject, "C Programming Tutorial");
Book1.book_id = 6495407;
/* Book2 详述 */
strcpy( Book2.title, "Telecom Billing");
strcpy( Book2.author, "Zara Ali");
strcpy( Book2.subject, "Telecom Billing Tutorial");
Book2.book_id = 6495700;
/* 输出 Book1 信息 */
printf( "Book 1 title : %s\n", Book1.title);
printf( "Book 1 author : %s\n", Book1.author);
printf( "Book 1 subject : %s\n", Book1.subject);
printf( "Book 1 book_id : %d\n", Book1.book_id);
/* 输出 Book2 信息 */
printf( "Book 2 title : %s\n", Book2.title);
printf( "Book 2 author : %s\n", Book2.author);
printf( "Book 2 subject : %s\n", Book2.subject);
printf( "Book 2 book_id : %d\n", Book2.book_id);
return 0;
}
4.常用标准库
stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。
5.内存管理
基本概念
计算机中每个程序的内存都是分区管理的,程序和程序之间的内存是独立的,不能互相访问;
一个程序所占的内存可以分为四个区域:代码区、静态区、堆区、栈区;
分区介绍
代码区(都是二进制代码)
静态区
栈区
栈区引到堆区
C语言中可以使用堆解决栈不能解决的问题;
堆区
用堆还是栈?
1.数据占用内存较大时用堆,否则用栈
2.动态创建数组,使用堆
(二)c++语言
1.基本语法
#include <iostream>
//包含头文件,程序必须文件
using namespace std;
//告诉编译器使用的std命名空间
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World"; // 输出 Hello World return 0;
}
2.基本的输入输出
标准的输出流(cout):
#include <iostream>
using namespace std;
int main( )
{
char str[] = "Hello C++";
cout << "Value of str is : " << str << endl;
//cout C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。
//流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。
}
标准的输入流(cin):
#include <iostream>
using namespace std;
int main( )
{
char name[50];
cout << "请输入您的名称: ";
cin >> name;
cout << "您的名称是: " << name << endl;
}
流提取运算符 >> 在一个语句中可以多次使用,如果要求输入多个数据,可以使用如下语句:
cin >> name >> age;