C及C++基础学习

来源:互联网 发布:js无限下拉页面瀑布流 编辑:程序博客网 时间:2024/06/13 10:37

系统的C++学习路线:基本原理(进制转换啊什么的) –> C(学习能力强的可以从C++开始) –> API –> C++语法 –> 操作系统原理 –> MFC (qt) –> 数据库 – 数据结构 – 硬件 – 领域编程(根据你自己以后的行业特点的专业性编程)
编译、连接,转换成机器代码的过程;
源代码—>编译系统—>目标代码(库其他代码)->连接程序->可执行代码;IDE(integrated Devel-opment enviroment)集成开发环境
C++中常用的转义序列符;
各种常量:#define const enum等
赋值:多重赋值,指一个赋值表达式中出现两个或多个的赋值符“=”,例如nNum1=nNum2=nNum3=100;printf(“%d “, (a = 6) = (c = 7) + (b = 8)); 输出结果为15,表达式结果输出a值,不是很懂,为什么a=c+b了。姑且记住吧。
数据类型的强制转换:(<类型名>)<表达式> <类型名>(<表达式>) 如double f=3.56; int nNum; nNum=(int)f;强制转换double为int,小数部分被截去。
运算符:<<,>>;条件运算符;sizeof运算符,逗号运算符;自增和自减;顺序语句和块,选择结构语句;循环结构语句;for结构语句;
自加程序:int main()
{
int Num=1;ntotal=0;
do
{
ntotal+=nNum;nNum++; for 语句 for(int Num=1;Num<=50;Num++)
ntotal+=Num;
} count<<”The sum from 1 to 50 is : “<

#include<stdio.h>#define LEN 20struct names{    char first[LEN];    char last[LEN];};struct guy{    struct  names handle;    char favfood[LEN];      char job[LEN];    float income;};int main(){    struct guy fellow[2]=    {        { { "Ewen", "Villard" },        "grilled salmon", "personality coach", 51800.00 }, { {"Rodney","Swillbelly"},"tripe","tabloid editor",232400.00 }    };    struct guy *him;    printf("address #1:%p #2: %p\n", &fellow[0], &fellow[1]);    him = &fellow[0];    printf("Pointer #1:%p #2:%p\n", him, him + 1);    printf("him->income is $%.2f:(*him).income is $%.2f\n", him->income, (*him).income);    him++;    printf("him->favfood is %s:him->handle.last is %s \n", him->favfood, him->handle.last);    return 0;}

2、使用结构地址:

double sum(const struct funds *); //参数是一个指针int main(){    struct funds stan = { "Garlic-Melon Bank", 3024.72, "Lucky`s Savings and Loan", 9237.11 };    printf("Stan has a total of $%.2f.\n", sum(&stan));    return 0;}double sum(const struct funds* money){    return(money->bankfund + money->savefund);}

3、把结构作为参数传递:

int main(){    struct funds stan = { "Garlic-Melon Bank", 3024.72, "Lucky`s Savings and Loan", 9237.11 };    printf("Stan has a total of $%.2f.\n", sum(stan));    return 0;}double sum(struct funds mollah){    return(mollah.bankfund + mollah.savefund);}

其他结构特性 C与C++的最本质的区别是:C是面向过程的编程语言,C++是面向对象的编程语言。更深入的分析两种语言的区别:在C语言中,数据和函数是分开声明的,数据和函数之间不存在直接的关联,函数所处理的数据是不属于函数的外部数据,需要通过特定的方式传递给函数,例如:数据作为函数的参数传递给函数,供函数来处理。而在C++语言中,可以将数据和函数声明为一个抽象数据类型——类(class)。类声明了数据以及对这些数据的操作(函数)。
例如一个简单的学生信息管理系统中,包含学生的姓名和学号,以及对学生姓名和学号的操作。
在C语言中,可以进行如此定义。
struct Student //Student结构体存储学生的姓名和学号
{
char *szName; //定义一个指针变量,指向存储学生姓名的内存
int iNumber;
}
void Student_Name(Student &s,char *Name) //设置学生的姓名
{
if(s.szName!=NULL) //如果学生姓名不为空,释放存储学生姓名的内存
{
free(s.szName);
s.szName=NULL;
}
s.szName=Name; //设置新的姓名
}
void Student_Number(Student &s,int Num) //设置学生的学号
{
s.iNumber=Num;
}
在C++语言中,可以将学生的姓名和学号,以及相应的操作封装到类中,可以进行如此定义。

class Student //定义学生类
{
public:
Student():szName(NULL),iNumber(0){} //初始化学生姓名为空
~Student()
{
if(szName!=NULL) //如果学生姓名不为空,释放存储学生姓名的内存
{
Free(szName);
szName=NULL;
}
}
void Student_Name(char *szName); //设置学生的姓名
void Student_Number(int Num); //设置学生的学号
private:
char *szName;
int iNumber;
}

C++中计算等待时间
用于个人计算机早前技术是,让计算机进行技术,以等待的一段时间

long wait =0;while(wait<10000)wait++;

更好的方法是而让系统时钟来完成工作,用ctime和clock来创建延迟循环:定义了一个常量CLOCKS_PER_SEC,改常量等于每秒钟包含的系统时间单位数,将系统时间除以这个值得到秒数,乘以这个值得到系统时间单位数,clock_t类型,编译器将把他转换为long、unsigned in等或者适合系统的其他类型。

原创粉丝点击