[C和指针]第五部分】的更多相关文章

声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4257300.html 第十四章 标准函数库第十五章 经典抽象数据类型(ADT) 第十四章            标准函数库 算术<stdlib.h> int abs(int value); /…
1.指针常量(pointer constant) 一般是没有这个概念的,指针类型的常量理解起来可以看着指针类型的常量,常用 0xff123456 表示,我们一般不会这么做.因为程序员一般无法事先知道计算机中的一个可用的地址,然后给他赋值,况且指针常量表达式也没有关于所指变量的类型的任何信息.因此,把指针常量表达为数值字面值的形式几乎没有用处. **有一个例外,NULL** 它是一个可以给指针赋值的常量,也就是0. 2.字符串常量(string literal) C语言字符串概念:一串以NULL字…
总结一下前文内容: 1.智能指针通过RAII方法来管理指针:构造对象时,完成资源初始化;析构对象时,对资源进行清理及汕尾. 2.auto_ptr,通过“转移所有权”来防止析构一块内存多次.(如何转移?详情看第二篇文章) 3.scoped_ptr,不“转移所有权”而是禁止拷贝/赋值对象.(C++如何禁止拷贝对象?详情看第三篇文章) 4.shared_ptr,通过"引用计数"的方法,来完成对象的拷贝/赋值.(引用计数怎么实现?详情看上篇文章) 大致总结了一下前文后,我们开始讨论今天的内容:…
前言 过了几个月再次更新.最近时间也不多了,快要期中考试了,暂且先少写一点吧. 本文仅在博客园发布,如在其他平台发现均为盗取,请自觉支持正版. 练习题 我们先来看几道题目.如果这几道题都不会的话,就先好好复习我写的前四篇文章吧,这一章是肯定看不懂的. 1.使用指针编写swap函数.(经典例题) 答案 void swap(int *a,int *b){ int t=*a;*a=*b;*b=t; } 2.已知数组a[10][10],交换该数组的第1和第3行. 答案 实际上,二维数组的每一行都是一个单…
5.4的习题:编写一组函数,实现维数组,函数原型如下: //指定位设置为1void set_bit(char bit_array[], unsigned bit_number); //指定位清零 void clear_bit(char bit_array[], unsigned bit_number); //指定位清零,否则设置为1void assign_bit(char bit_array[], unsigned bit_number, int value); //参数指定位置为1返回真,为0…
下列输出的值: #include <stdio.h> int func(){ static int count = 1; return ++count; } int main() { int answer = 0; answer = func() - func() * func(); printf("%d\n", answer); return 0; } answer = 2 - 3 * 4; 所以结果 -10: 5.3 编写函数 unsigned int reverse_…
1.有符号的值得右移位操作是不可移植的 2.移位操作的位数是个负数,是未定义的 3.连续赋值的各个变量的长度 不一,导致变量值截断. #include <stdio.h> int main() { char chr_num; int int_num; //截断 int_num = chr_num = 100000; return 0; } 编译器提示: 4.条件语句勿用=代替== 5.勿用 | 代替||, & 代替 && 6.不同的用于表示布尔值的非零值之间进行比较.…
对于操作数的左位移都是相同的,右边空出来的位置用0补齐. 但是对于右位移,对于有符号和无符号数是不一样的,最高位的1有两种处理方式.逻辑位移和算术位移. 逻辑位移:右移入位用0补齐 算术位移:右移入位用原先的该值得符号位决定. #include <stdio.h> int main() { int num = -128; printf("%08x\n",num); num = num >> 4; printf("%08x\n",num); n…
js中的函数有一个很有意思的地方,即函数自身也方法. apply方法让我们可以建立一个参数数组并用其来调用函数. apply方法接受两个参数,第一个是将被绑定给 this 的值.第二个就是一个参数数组.…
一.const指针 1.const int* p和int const* p:两者意义是相同的.指向的内容是只读数据,不可以q改变:但是指向的地址可以改变. 2.int* const p:必须先对指针初始化,而且指向的地址是只读的,不可以再被改变:但是指向的内容可以改变. 3.const int* const p:既不可以改变指针指向的地址,也不可以改变指针指向的内容.   二.指针数组:元素类型全是指针 类型名称*数组名[数组长度] 例如:    char* pc[10]:字符指针数组,常用来可…