2017年5月23日

摘要: 通常的指针,如int *p; p++; 指针的内容(即指向的单元的地址)变化与指针的类型有关,在前面的情况中,自加前后指针指向的地址只差为4(即指针指向单元所占的存储大小为4字节)。但是如果将自加前的指针值存在p_prev中,通过p-p_prev所得到的值打印出来为1,通过强制类型转换(unsign 阅读全文
posted @ 2017-05-23 21:11 rocklee25 阅读(546) 评论(0) 推荐(0) 编辑
 
摘要: #include #include int main() { char c = ' '; //1 byte int a = 0; //4 bytes long l = 100; //4 bytes float f = 1.0; //4 bytes int array[10]; int *array_p = array; ... 阅读全文
posted @ 2017-05-23 19:25 rocklee25 阅读(506) 评论(0) 推荐(0) 编辑
 
摘要: 摘自《c专家编程》c语言中,数组和指针不能够等价,在下面情况下,数组和指针能够等价使用。 规则 1. 表达式中的数组名被编译器当做一个指向该数组第一个元素的指针。char *p = array_name; 规则 2. 下标总是与指针的偏移量相同。array_name[index]与 *(p+inde 阅读全文
posted @ 2017-05-23 16:42 rocklee25 阅读(474) 评论(0) 推荐(0) 编辑
 

2017年5月19日

摘要: 摘自《c专家编程》 typedef可以看成一种彻底的封装类型,在typedef声明类型之后不能再往里面增加其他的内容。 例子: #define宏定义只是用于简单的替换 阅读全文
posted @ 2017-05-19 21:46 rocklee25 阅读(557) 评论(0) 推荐(0) 编辑
 
摘要: 摘自《c专家编程》,作为备忘 1. 直接返回简单的字符串 char *func() { return "Simple string demo!\n"} 这是最简单的解决方案,字符串常量存储在只读存储区,如果字符串需要通过计算得到,这种方式就不能使用 2. 使用全局字符数组 这种方式很容易理解,不多解 阅读全文
posted @ 2017-05-19 18:36 rocklee25 阅读(710) 评论(0) 推荐(0) 编辑
 
摘要: .的优先级高于* []优先级高于*, int *ap[]等价于int *(ap[]), ap是元素为int指针的数组 函数()高于*, int *fp()等价于int*(fp()), fp是函数,函数的返回值是int*类型 ==和!=高于位操作符,(val & mask != 0)等价于val & 阅读全文
posted @ 2017-05-19 16:19 rocklee25 阅读(944) 评论(0) 推荐(0) 编辑
 

2017年5月18日

摘要: const int **p_p, p_p是指针类型,指向的内容的类型是const int*。所以p_p = &p赋值不会出现警告 阅读全文
posted @ 2017-05-18 22:20 rocklee25 阅读(1096) 评论(0) 推荐(0) 编辑
 
摘要: 程序输出: Google H e a 阅读全文
posted @ 2017-05-18 17:19 rocklee25 阅读(280) 评论(0) 推荐(0) 编辑
 

2017年5月16日

摘要: dest数组的内容 "First string <Hello World!> Second string!\n" 1. 可以通过sprintf函数将多个字符串连接到新的字符串 2. 在java中,可以通过 integer + ""将整型或其他非字符串类型转换成字符串,通过sprintf函数可以将其他 阅读全文
posted @ 2017-05-16 23:29 rocklee25 阅读(236) 评论(0) 推荐(0) 编辑
 
摘要: 代码源自APUE 直接输出到屏幕与重定向到文件的输出内容有差别 "before fork!\n"字符串在重定向到文件时会输出两次,一次是父进程的输出,一次是子进程的输出。这是在最后的退出调用exit(0)标准库函数的情况下 在通过系统调用_exit(0)退出进程的时候,标准输出的内容(通过print 阅读全文
posted @ 2017-05-16 11:21 rocklee25 阅读(219) 评论(0) 推荐(0) 编辑