C语言学习笔记
Lfarsight
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c语言--提高篇(习惯、风格)
1、 写法1:if('A'==a) { a++; } 写法2; if(a=='A') { a++;} 写法1比较好,若将“==”误写成“=”,编译器不允许对常数赋值就可检查到错误。 2、写法1:for(i=0;i<9;i++){ X=i+Y+J*7; } 写法2: S=Y+J*7; for(i=0;i<9;i++){ X=i+S; } 写法2比较好,将部分加法放到了循环体外,...原创 2019-03-10 20:35:45 · 448 阅读 · 0 评论 -
预处理、const、sizeof
1.const与#define的区别: 1)都可以定义常量,但前者比后者有优点:const常量有数据类型,而宏常量没有数据类型,编译器可以对前者进行类型安全检查,而#define只是替换,并且在字符替换过程中可能会产生意想不到的错误(边际效应)。 2)有些集成化的调试工具可以对const常量进行调试,但不能对宏常量进行调试。 3)const完全可以取代宏常量。 2.char * s1=“01234...原创 2019-03-11 10:42:40 · 254 阅读 · 0 评论 -
指针、动态内存传递
1.指针:允许直接获取和操纵数据地址,实现动态存储分配。 int *pi; *pi=5; 上述代码是错误的,整数指针pi并没有指向实际的地址,赋的值不知道该放到哪里去。 2. 下面哪个能够成功实现两个数的交换。 1)void swap1(int a, int b) { int temp; temp=a; a=b; b=temp; } 2)void swap2(int *a...原创 2019-03-11 11:48:24 · 229 阅读 · 0 评论 -
动态内存传递(2)
.............................. void GetMemory(char *p,int num) { p=(char *)malloc(sizeof(char) *num); }; int main() { char *str=NULL; GetMemory(str,100); strcpy...原创 2019-03-11 16:03:03 · 219 阅读 · 0 评论 -
指针数组、数组指针
int a[10]; 一个有10个整型数的数组 int *a[10]; 一个有10个指针的数组,该指针是指向一个整型数的。 int (*a)[10]; 一个指向10个整型数数组的指针。 int (*a)(int) ; 一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int(*a[10])(int); 一个有10个指针的数组,该指针指向一个函数,该函数...原创 2019-03-11 16:40:26 · 180 阅读 · 0 评论 -
嵌入式编程
1、 interrupt double compute_area(double radis) { double area=PIradiusradius; printf("\nArea=%f",area); return area; } (1)ISR不能返回一个值。 (2)ISR不能传递参数。 (3)在许多处理器中浮点是不可重入的。 (4)printf()经常有重入和性能上的问题,所以一般不使用pr...原创 2019-03-11 17:32:20 · 315 阅读 · 0 评论 -
静态变量,局部变量,strlen,sizeof
float小数点后位数 局部变量存在栈中 静态变量存在静态存储区 静态局部变量:存储在静态存储区,占据着永久性的存储单元。 直到程序运行结束才会释放存储单元。由于并不释放存储单元, 所以下次再进入该函数时,可以继续使用该存储单元的值。 栈是由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 其操作方式类似于数据结构中的栈。堆是一般由程序员分配释放, 若程序员不释放, 没有被操作系统回收的话...原创 2019-06-28 17:05:47 · 228 阅读 · 0 评论
分享