随笔分类 -  C/C++

摘要:最近发现了一个问题,是关于char *和char [ ]的区别见程序如下:#include "stdafx.h"#include "string.h"#include "stdio.h"int main(int argc, char* argv[]){ char source[]="This is a source sentence"; //char *source="This is a source sentence"; strtok(source,"a"); printf 阅读全文
posted @ 2011-09-19 08:42 auleaf 阅读(343) 评论(0) 推荐(0)
摘要:#include<stdio.h>#include<stdlib.h>int main(){int **p; //定义一个二级指针int n=3,m=4; //4行3列p=(int **)malloc(4*sizeof(int *)); //分配一块空间,大小是4*sizeof(int *),保存四个指针,每个指针指向每一行的位置int i=0;for(i=0;i<m;i++){*(p+i)=(int *)malloc(3*sizeof(int)); //分配4次空间,每次分配3*sizeof(int)大小,里面保存3个值}int j;for(i=0;i<4 阅读全文
posted @ 2011-09-19 08:40 auleaf 阅读(535) 评论(0) 推荐(0)
摘要:#include<iostream>#include<string.h>using namespace std;class Bank{private:int num;char *name;float money;public:Bank(int i,char* na ,float j){num=i;name=new char[20]; //开辟name的空间,而不是形参na的空间//name=na; //不能直接复制,要用strcpy函数。strcpy(name,na);money=j;}void InMoney(float n){money+=n;cout<< 阅读全文
posted @ 2011-09-19 08:40 auleaf 阅读(117) 评论(0) 推荐(0)
摘要:13个人围成一圈,从第一个人开始顺序报数1,2,3。凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。#include<stdio.h>#include<stdlib.h> //malloc要用到 struct node{int data;struct node *next;};node *create(int n){node *h,*r,*p;h=(node *)malloc(sizeof(node));h->data=1; //从1开始r=h;int i;for(i=2;i<=n;i++){p=(node *)malloc(sizeof(node)) 阅读全文
posted @ 2011-09-19 08:39 auleaf 阅读(218) 评论(0) 推荐(0)
摘要:指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。例如: 例二: 1。 char a[20]; 2。 int *ptr=a; ... ... 3。 ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,编译器是这样处理 的:它把指针ptr的值加上了sizeof(int),在32位程序中,是被加上了4。由于地址是用字节做单位的,故ptr所指向的地址由原来的变量a的 地址向高地址方向增加了4个字节。由于char类型的长度是一个字节,所以,原来ptr是指向数组a的第0 号单元. 阅读全文
posted @ 2011-09-19 08:29 auleaf 阅读(307) 评论(0) 推荐(0)
摘要:方法1:#include<stdio.h>#include<string.h>int main(){char *src="hello,world";int len=strlen(src);char *dest=(char*)malloc(len+1); //要为\0分配空间char *p=dest;char *q=&src[len-1]; //指向最后一个字符while(len--!=0){*p++=*q--; //注意不要丢掉*号}p=0; //字符串尾部要加上\0printf("%s\n",de... 阅读全文
posted @ 2011-09-18 00:43 auleaf 阅读(5846) 评论(0) 推荐(0)
摘要:1.什么是位段在大多数的计算机系统中, 一个字节是由八个更小的, 称作为位的单位组成的。位是比字节更小的单位。位只有两个值, 1 或 0 。因此, 存储在计算机存储器中的一个字节可以看成由八个二进制数字形成的串。例如, 一个存放值 36 的字节是八个二进制数字的串: 可以表示成 00100100。 存入值24 的字节可以表示成 00010100。有时, 我们希望不仅对字节进行操作, 也要能对位进行操作。例如, 用布尔真或假条件表示的标志, 在计算机中可用位来表示。但是, 说明一个用作标志的普通变量至少要用一个字节---8 位, 而在某些计算机系统中则可能是 16 位。 如果我们想在一个很大的表 阅读全文
posted @ 2011-09-16 23:26 auleaf 阅读(274) 评论(0) 推荐(0)