c++的一些头文件:
#include<stdio.h> c语言的标准输入流
#include <iostream.h> C++的标准输入流
node * root=(node*)calloc(1,sizeof (node));
typedef struct node //链式存储二叉树
{
int num;
node * lchild;
node * rchild;
};
预定义常量和类型
#define TRUE 1 //定义常量
typedef int Status //定义类型
c++的变量
char a= 1; //在java中是报错误的;在c++中是可以通过的;在标准输出流中输出的是乱码;实际上是Unicode字符;
char a= '1'; //就是一个字符;
int aaa=0;
char a='1';
char b = 1;
printf("%d\n",a); //对应Unicode值为49
printf("%d\n",b); //值为1
printf("%c\n",a); //输入字符为1
aaa=aaa+a;
printf("%d\n",aaa); //为49
aaa =aaa+b;
printf("%d\n",aaa); //为50
注:与java的区别,java实现实现上面的代码需要强制转换。
指针
int a=1; int * p;
p=&a; //&a表示取地址
*p=2; //
printf("%d\n",*p); //2 a与p有相同的地址
printf("%d\n",a); //2
指针和数组的区别:
int i,a[]={3,4,5,6,7,3,7,4,4,6};
for (i=0;i<=9;i++)
{
printf ( “%d”, *(a+i) ); //同a[i]
}
c++的字符串,字符数组,字符指针的处理以及传递
Test 1
void init(LNode &L){ //产生初始化种群,其中L为链表的头结点
Node * p; Node * r;
p=L;
for(int i=0;i<N;i++){
r= (Node*)malloc(2*sizeof(Node));
string s=getGene();
for(int j=0;j<SIZE;j++)
r->gene[j]=s[j];
r->next=NULL; //在末指针下添加
r->number=i; //给每个基因编号
p->next = r;
p=p->next;
}
}
Test 2
void init(){ //产生初始化种群
Pt=(Node*)malloc(2*sizeof(Node));
Node * p=Pt;
Node * r;
for(int i=0;i<N;i++){
r= (Node*)malloc(2*sizeof(Node));
string s=getGene();
for(int j=0;j<SIZE;j++)
r->gene[j]=s[j];
r->next=NULL; //在末指针下添加
r->number=i; //给每个基因编号
p->next = r; //不带头结点初始化
p=p->next;
}
}
备注:
Node * p=Pt; //这行命令到底表达什么内容呢?
是否p与节点Pt指向同一个内存空间呢?
赋值到底是值传递还是引用传递的?也就是说两个到底是不是一个内存块
结点分析:

只改变结点的指向,并不改变结点的内容。
srand((unsigned) time(NULL)); //的作用
C++基础第二篇
4万+

被折叠的 条评论
为什么被折叠?



