最近学习C语言中的精华
来源:互联网 发布:阿里云免费企业邮箱 编辑:程序博客网 时间:2024/05/16 11:52
1.Register变量长度小于等于整形长度,不能用&来获取地址
2.Sizeof在计算变量占用空间大小时括号可以省略,但是计算类型大小时不能省略
#include<stdio.h>
2 int main()
3 {
4 int *p=NULL;
5 printf("%d\n",sizeof(p)); 4
6 printf("%d\n",sizeof(*p)); 4
7 return 0;
8 }
#include<stdio.h>
int main()
{
int a[100];
printf("%d\n",sizeof(a)); 400
printf("%d\n",sizeof(a[100])); 4
printf("%d\n",sizeof(&a)); 4
printf("%d\n",sizeof(%a[0])); 4
return 0;
}
3.Float 与0比较
If(fval>=-epsinon)&&(fval<=epsinon)
Epsinon为定义好的精度
4.case后面只能跟整形或字符型的常量或常量表达式。一般把常用的情况放在最前面
5.For循环嵌套使用时将长循环放在内循环里面,纸样提高算法效率
6.Return不可返回指向“栈内存”的指针,即不能返回局部变量
7.Const 修饰 修饰谁近水楼台先得月
Const int *p p可变p指向的对象不可变
Int *const p p指向的对象可变,p不可变
8.Volatile 修饰的变量编译器对访问变量的代码不再优化,一般用于定义寄存器变量或者端口数据或者多线程共享数据。
Volatile int i=10;
Int j=i;
Int k=i;
9.#define SEC_A_YEAR (60×60×24×365)UL是表达式时要用括号括起来
10.&a[0]首元素地址;&a数组地址;a数组首元素地址;
a+1 &a+1
将0x100存放到0x12ff7c中
int *p=(int *)0x12ff7c; 地址需进行强制转化。“=”两边数据类型应保持一致
*p=0x100
11.Extern
文件1中 char a[100]
文件2 中声明 extern a[]或extern a[100]
Extern char *a 是不对的,此时a为一个指针变量
12.Int *p1[10]这是一个数组,包含10个int类型数据指针
int (*p)[10]此时p为指向一个诗歌int型元素数组的指针
***区分以上不同只需记住[]优先级比*高
Int main()
{
Int a[4]={1,2,3,4};
Int *ptr1=(int*)(&a+1);
Int *ptr2=(int*)((int*)a+1);
Printf("%x,%x",ptr1[-1],*ptr2); 4 a[0]第二个字节开始的4B
Return 0;
}
一维数组作为函数参数传递的只是其首元素地址。函数返回时也只是一个指针
二维数组三维数组作参数时 char a[3][4] fun(char (*p)[4]) 或者fun(char a[][4]) a[3][4][5]作参数时写成(*p)[4][5]
Char * (*fun) (char *p1,char *p2) fun为指向返回类型char* 类型的函数的指针
13常见的内存错误、
1 指针指向位置不合法
(1)结构体成员指针未初始化
(2)结构体成员指针分配内存不足
(3)确保指针有效 为此在函数入口处使用assert(NULL!=p)对参数进行校验
2 为指针分配内存小,此时主要指未考虑字符串“\0”结束符
3内存分配成功但未初始化
4内存越界
5内存释放之后将指针指控
Char *p;
P=char * malloc(5*sizeof(char));
If(NULL!=p)验证分配成功
………
Free(p);
P=NULL;
- 最近学习C语言中的精华
- 最近学习C语言
- 嵌入式c语言精华
- C 语言精华
- C语言精华
- C语言精华代码
- 【精华】C语言中的scanf函数的使用
- C/C++学习精华
- 这样学习C语言最有效 ——C语言入门学习精华
- Ruby:编程语言中的精华
- C语言之精华总结!
- C语言之精华总结!
- C语言之精华总结
- C语言中精华------>指针
- C语言之精华总结
- C语言之精华总结
- C语言精华之:函数
- 【c语言】C语言精华部分
- 触发器的认识
- 常见压缩文件的解压缩方法
- XdictGrb.dll引用失败的解决方法
- 全体是合同,多学学吧。当前少吃亏。
- 字符设备驱动之笔记-中断上下部
- 最近学习C语言中的精华
- Waiting for instances to leave
- hdu 4034
- vi 编辑器
- Android mineType总结
- crontab调用shell访问oracle问题
- 我是学习 “软件工程” 专业的一名 本科生,请问考一些跟 编程 有关的证书面试的时候有用吗? 用处大吗?
- shell文件从windows上传到Linux问题
- 白叟求助民警遭礼遇 错误称有引导亲戚后获报歉