C——1
来源:互联网 发布:知乎 显微镜 编辑:程序博客网 时间:2024/06/14 10:46
2016/02/23 16:14
1.c语言不像java,并没有内存释放,所以我们在编写c语言过程中比如删除某个节点:我们通过将第二个节点的指针域赋值给第一个节点的指针域,这样达到删除第二个节点,第一个节点指向第三个节点。但是如果不释放第二个节点的内存,内存会越来越小。
如何释放第二个节点的内存,可以先将第一个节点的指针域赋值给r,然后free(r)。
r=p->pNext;
p->pNext=r->pNext;
free(r);
2.将q所指向的结点插到p所指向的结点后面。
q->pNext = p->pNext;
p->pNext= q;
3.#include <stdio.h>
int main(void)
{
char array[12]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
short *pshort = (short *)array;
int *pint = (int *)array;
long long *pint64 = (long long *)array;
printf("0x%x,0x%x,0x%llx,0x%llx",*pshort,*(pshort+2),*pint64,*(pint+2));
return 0;
}
这里long long相当于int64,
long long int 其实就是long long,和int在Windows平台下并不是一回事。典型的,int是32位,而long long 是64位的。
而a[n]这样的下标,n只支持机器最高效的类型。也就是说在32位环境下是int,而64位环境下才是long long。
4.大部分操作符都是可以重载的,例外的只有“.","::","?:","sizeof"。没有什么非禁止operator?:重载的理由,只不过没有必要而已。另外,expr1?expr2:expr3的重载函数无法保证expr2和expr3中只有一个被执行。而“sizeof”无法被重载是因为不少内部操作,比如指针加法都依赖于它。
简单解释一下重载:重载,简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
5.关于转义字符:所有的ASCII码都可以用“\”加数字(一般是8进制074)来表示。而C中定义了一些字母前加“\”来表示常见的那些不能显示的ASCII字符,如\o,\t,\n等。因为后面的字符都不是它本来的ASCII字符的意思了。
(1)无论是普通字符还是转义序列,如果作为双引号中字符集合的一部分,则无需引号
如:printf("Hello!7/n"),打印Hello!7
(2)什么时候使用ASCII码,什么时候使用转义序列呢?如果要在某个转义序列和其对 应的ASCII码之间做出选择,
则应当使用转义序列。比如选择'/f'而不是'/014'。首先,转义字符更容易记忆;其次,这样做使程序的可移植性更好。
因为在不使用ASCII码的系统中,'/f'仍然适用
(3)当需要数值编码时,为什么使用'/032'而不是032?首先,'/032'更能清晰地表达程序 员表示一个字符编码的意 图
其次,'/032'这样的转义序列可以嵌入到C字符串中,而032不可以,例如:"Hello!/007/n"中就嵌入了'/007'
(4)使用ASCII时要注意数字和数字字符的区别。例如字符4的ASCII码值为52.写 法'4'表示符号4而不是数值4。
6.p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
p1+5=p1+5*1=p1+5sizeof(unsigned char)
7.java也可以数组溢出
0 0
- C——1
- C++——C/C++static关键字
- C/C++——分类目录
- C/C++——排序
- C语言入门(1)——C语言概述
- C语言入门——C语言学习日志1
- C/C++面试(1)——extern "C"
- [C/C++]指针详解(1) — 复杂数据类型与指针
- C程序设计语言习题—1
- Objective—C 学习1
- c#—细说多线程(1)
- C實踐項目1—輸出點陣圖
- Tips—1(c标签)
- C++——C和C++,面向对象三大特性,程序开发过程(1)
- c-->brew/c++-->mfc **——**爱上C++**——**
- 超越C++:下一代C++——C++/CLI简介
- c笔记——C,C++,JAVA,C#语言差别
- C/C++——宏综述
- 数据库性能优化之SQL语句优化
- STL_set
- struts2中action接收参数的方法
- C#5.0 以Task方式实现APM
- 两种ModelAndView接的参数视图路径之间的区别
- C——1
- STM32问题集之头函数路径报错
- MapReduce调试,通过计数器输出变量值到控制台显示
- uva 120 Stacks of Flapjacks 煎饼
- IPC机制
- 从C/C++到Objective-C(一)
- 对于恶意诈骗短信中包含的链接的一次研究
- 瑞芯微RK3188如何配置USB摄像头支持
- 如何在MacBook上不使用VPN的情况下上Google等国外网站