C和C++
dizzthxl
这个作者很懒,什么都没留下…
展开
-
C中的指针(递增,递减,相加,相减)
#include int main (void){ int urn[5] = {100,200,300,400,500}; int *ptr1,*ptr2,*ptr3; ptr1 = urn;//把一个地址赋给指针 ptr2 = &urn[2];//同上 //去的指针指向的值 //并转载 2013-07-26 17:14:44 · 2160 阅读 · 0 评论 -
typedef
使用typedef为现有类型创建同义字,定义易于记忆的类型名typedef使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于“typedef”关键字右边。例如:typedef int size;此声明定义了一个int的同义字,名字为size。注意typedef并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要in转载 2013-04-09 23:44:30 · 674 阅读 · 0 评论 -
C中的修饰符*()[]
int a[8][8] //int二维数组int ** ptr //指向int的指针的指针int * risks[10] //指针数组(具有10个元素的数组,每个元素是一个指向int的指针)int (* rusks)[10] //一个指针,指向具有10个元素的int数组int * oof[3][4] //一个二维数组,每个元素是一个指向int的指针int(* uuf)[原创 2013-04-09 23:39:49 · 779 阅读 · 0 评论 -
编译器和预处理器
编译器就是把源代码翻译成目标代码的工具,目标代码可以是机器码,也可以是其他代码预处理器就是在代码交给编译器处理前,预先进行一些处理,比如包含头文件,宏展开等等转载 2013-04-09 08:36:14 · 1141 阅读 · 0 评论 -
联合和结构体
1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变量名; 联合表示几个变量公用一个内存位置, 在不同转载 2013-04-08 22:55:58 · 620 阅读 · 0 评论 -
C primer plus第13章(文件输入/输出)对文本文件及二进制文件的处理
#include #include // c的exi() 原型int main(int argc,int *argv[]){ int ch; FILE *fp; long count = 0; if(argc != 2) { printf("Usage:%s filename\n",argv[0]); exit(1);/原创 2013-03-24 20:18:46 · 888 阅读 · 0 评论 -
C primer plus第12章(存储类、链接和内存管理)习题
1#include void critic(int *ubits);int main(void){ int units; printf("How many?\n"); scanf("%d",&units); while(units != 56) critic(&units); printf("You must have look原创 2013-03-23 12:04:54 · 958 阅读 · 0 评论 -
C primer plus第13章(文件输入/输出)习题
4#include #include /*#include */ /*mac下*/int main(int argc,char *argv[]){ FILE *fp; double n; double sum = 0.0; int ct = 0; //argc = ccommand(&argv); //对于mac if(argc =原创 2013-03-26 23:22:14 · 986 阅读 · 0 评论 -
内存分配(malloc/realloc/calloc区别)
void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size);void* calloc(size_t nelem, size_t elsize);都在stdlib.h函数库内。C语言的标准内存分配函数:malloc,calloc,realloc等。 malloc与calloc转载 2013-03-22 00:35:43 · 423 阅读 · 0 评论 -
C primer plus第12章(存储类、链接和内存管理)
parta.c#include #include void report_count();void accumulate(int k);int count = 0;//文件作用域,外部链接(在整个项目生效)int main(void){ int value;//自动变量(代码块内生效) register int i;//寄存器变量(代码块内生效) pr原创 2013-03-21 09:11:17 · 902 阅读 · 0 评论 -
C primer plus第11章(字符串和字符函数)习题(10选择排序)
#include int main(int argc,char *argv[]){ char note[] = "abcdef"; //++note;不能对note++ char *a; a = note; puts(++a);//bcdef puts(a++);//bcdef puts(a);//cdef return 0;}原创 2013-03-14 00:38:03 · 1409 阅读 · 0 评论 -
字符串和字符函数
#include #define MSG "You must have many talents.Tell me some."//一个符号字符串常量#define LIM 5#define LINELEN 81 //最大字符串长度+1int main(){ char name[LINELEN]; char talents[LINELEN]; int i;原创 2013-03-07 02:57:57 · 750 阅读 · 0 评论 -
C中的数组
int days[3] = {31,33,32};//2个数组不能直接复制int a[2] = {1,2};int b[2];b=a;//不允许b[2] = a[2];//不正确b[2] = {1,2};//不起作用要复制数组有2种方法1.for (int i=0;i{b[i]=a[i];}2.#include main(){in原创 2013-02-27 15:08:19 · 384 阅读 · 0 评论 -
C中printf 和 scanf 的格式说明符
C语言中 printf 和 scanf 的格式说明符printf 格式说明符:%c --字符%d --十进制整数%i --同%d%e --以科学计数法表示浮点数(指数部分以e表示)%E --以科学计数法表示浮点数(指数部分以E表示)%f --浮点数%.2f -原创 2013-01-21 11:08:30 · 1821 阅读 · 0 评论 -
linux下的C
等待学习补充P192 8.4 重定向文件p230 9.4多源代码文件程序的编译原创 2013-02-21 14:45:39 · 350 阅读 · 0 评论 -
C primer plus第10章(指针)习题
//下面每种情况中*ptr和*(ptr+2)的值分别是什么 int *ptr; int torf[2][2] = {12,14,16}; ptr = torf[0]; //*ptr = 12;*(ptr+2) = 16;把16视作二维数组第二行第一个值 int *ptr; int fort[2][2] = {{12},{14,16}}; p原创 2013-03-04 15:26:41 · 3119 阅读 · 0 评论 -
C将10进制转成2进制(递归)
#include void to_binary(unsigned long n);int main (void){ unsigned long number; printf("Enter an integer (q to quit): \n"); while(scanf("%ul", &number) == 1) { printf("Binar原创 2013-02-21 14:28:43 · 1132 阅读 · 0 评论 -
实际参数和形式参数
原创 2013-02-20 23:02:21 · 831 阅读 · 0 评论 -
C指针——函数指针
原文地址http://hi.baidu.com/bellgrade/item/4a4334e8132eed0965db00a6一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){转载 2013-04-10 08:36:42 · 425 阅读 · 0 评论 -
jcsu博客
http://www.cnblogs.com/JCSU/category/117102.html转载 2013-04-12 08:48:01 · 581 阅读 · 0 评论 -
C输入输出总结
1.字符输入输出putchar ():(预处理器宏非函数)把变量中的一个字符常量输出到显示器屏幕上;getchar ();(预处理器宏非函数)从键盘上输入一个字符常量,此常量就是该函数的值;printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上;scanf ();从键盘上输入各类数据,并存放到程序变量中;puts ():把数组变量中的一个原创 2013-07-26 17:13:31 · 956 阅读 · 0 评论 -
指针、句柄、引用的区别(2)
那是什么是句柄?他和指针有什么异同?下面是我在网上找的专业文章,介绍指针和句柄的异同。这也是我经常分不清楚的概念。我一直认为当某个句柄被申请时,就是分配了某个对象在内存中的某种形式,用户拿着这个句柄可以访问和操作这块内存,操作方法取决于句柄类型。感觉很高深,所以也就没有去深究。句柄和指针的区别当把硬盘上的资源调入内存以后,将有一个句柄指向它,但是句柄只能指向一个资源。而转载 2013-06-02 15:53:06 · 4523 阅读 · 0 评论 -
指针、句柄、引用的区别(1)
(1)指针是对象在内存中的地址;(2)引用是对象的别名,其实质就是功能受限但是安全性更高的指针;(3)句柄是指针的指针,句柄实际上是一个数据,是一个Long (整长型)的数据。句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样。Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内转载 2013-06-02 15:52:08 · 1324 阅读 · 0 评论 -
NSString、char*,NSData,wchar
char*(char[]) C语言标准字符数组Cstring(char 单字节变量类型,最多表示256个字符)wchar_t* (wchar[]) (wchar宽字节变量类型,用于表示Unicode字符,宽字节类型每个变量占用2个字节)NSString Object-C标准字符串对象NSDATA 二进制数据流、不变缓冲区,使用文件时,需要频繁地将数据读入一个临时存储区,它原创 2013-05-12 10:33:35 · 1996 阅读 · 1 评论 -
Ansi,UTF8,Unicode,ASCII编码的区别2
Ansi,UTF8,Unicode,ASCII编码的区别 一、简介 1. ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 (1)单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. (2)转载 2013-05-13 09:03:24 · 702 阅读 · 0 评论 -
C语言中不安全的函数
这些函数由于设计的时候比较淳朴,并没有做任何的越界检测,主要容易"被溢出",只需要多设点检查边界,即安全。函数严重性解决方案gets最危险使用 fgets(buf, size, stdin)。这几乎总是一个大问题!strcpy很危险改为使用 strncpy。strcat转载 2013-05-13 08:40:25 · 1397 阅读 · 1 评论 -
关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
char :单字节变量类型,最多表示256个字符,wchar_t :宽字节变量类型,用于表示Unicode字符,它实际定义在里:typedef unsigned short wchar_t。为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下: wchar_t c = `A' ; wchar_t * p = L"Hello!" ; w转载 2013-05-13 00:03:03 · 715 阅读 · 0 评论 -
C语言的递增运算符详解
#include void main() /*主函数*/ { int a,b,c,d; a=5; b=5; c=(a++)+(a++)+(a++); d=(++b)+(++b)+(++b); printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); } 结果是什么?而后Eric搜了一下后发现,类似的问题很多,也就是转载 2013-05-22 09:24:23 · 5528 阅读 · 5 评论 -
C primer plus第15章(位操作)
15.1//使用位运算显示二进制数#include char * itobs(int,char *);void show_bstr(const char*);int main(void){ //用8位表示一个字节,最后加1为考虑到是数组为\0预留 char bin_str[8 * sizeof(int) + 1]; int number; puts("En原创 2013-05-02 08:42:46 · 1275 阅读 · 0 评论 -
C的位运算
用法:掩码 (&)flags = flags & MASK; flags&= MASK; //把MASK中0位看做非透明,1位看做透明,MASK覆盖在flags上,透明位的值为flags对应位的值,非透明位的值都为0用法:打开位 (|)flags = flags | MASK; flags| = MASK;原创 2013-04-25 23:30:31 · 750 阅读 · 0 评论 -
二进制原码、反码、补码
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。例如,X1= +1010110X2= 一1001010其原码记作:〔X1〕原=[+1010110]原=01010110〔X2〕原=[-1001010]原=11001010原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,原创 2013-04-25 08:52:46 · 1323 阅读 · 0 评论 -
二进制及各进制的转换
简介 20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制,同时证明了莱布尼兹的原理是正确的。进制数 二进制数据的表示法 二进制数据也是采用位置计数法,其位权是以2为底的幂。例如二进制数据110.11,其权的大小顺序为2^2、2^1、2^0、2^-1、2^-2。对于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:转载 2013-04-23 23:41:39 · 1724 阅读 · 0 评论 -
C算法-选择排序
介绍 选择排序,是指计算机的一种排序方法,它的时间复杂度为O(n2),它是对冒泡排序法的一种改进。原理 每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录原创 2013-03-17 22:16:43 · 643 阅读 · 0 评论 -
二进制理解(1)
在数学计算中,二进制计数系统的公分母是最小的,它以2为基数。比如以6为基数的计数系统;你先数1,2,3,4,5,然后是10,11,12,13,14,15,然后是20,等等,实际上,应该先数0,1,2,3,4,5,然后是10,1l,12,13,14,15,等等。从O开始数,能比较清楚地看出每6个数字组成一组——因此6就是基数。注意,你应该从O开始一起数到比基数小1的数(因为基数是6,所以你应该从O数转载 2013-04-23 00:47:13 · 839 阅读 · 1 评论 -
C primer plus第14章(结构和其他数据形式)(练习)
//练习3、4、5#include struct month{ char name[10]; char nik[4]; int days; int month;};struct month months[12] ={ {"January","jan",31,1}, {"February","feb",28,2}, {"March原创 2013-04-12 00:50:45 · 1173 阅读 · 0 评论 -
C primer plus第14章(结构和其他数据形式)
//结构体与指针#include #define LEN 20//#include //mac下需要struct names{ char first[LEN]; char last[LEN];};struct guy{ struct names handle; char favfood[LEN]; char job[LEN]; f原创 2013-04-06 17:21:06 · 1280 阅读 · 0 评论 -
C函数的可变参数
C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数转载 2013-02-21 10:03:14 · 299 阅读 · 0 评论 -
C SIZEOF
下面代码输出结果是什么??1234567891011121314151617181920212223242526272829转载 2013-02-20 08:52:59 · 687 阅读 · 0 评论 -
逗号运算符
#include int main (void){ int x,y,z; x= (y=3,(z=++y+2)+5); printf("%d,%d,%d",x,y,z); return 0;}逗号运算符是个顺序点,左边的子表达式先生效,然后再是右边如上面例子打印结果是11,4,6先运算逗号左边的把Y赋值为3,然后运算右边的,Y递增为4,z=4原创 2013-02-05 13:54:10 · 532 阅读 · 0 评论 -
C中的增量++和减量--运算符
增量和减量运算符的优先级很高,只有圆括号比他更高n++或n-- 先使用n后再对值进行增减例int n = 1;a = 2 + n++;那么结果就会使 a=3 n=2;++n和--n则相反上题结果就会是a=4 n=2;原创 2013-02-01 16:56:54 · 1330 阅读 · 0 评论