文章分类 - C语言
摘要:char *s 这个是指申请一个地址空间 记录一个地址 char s[] 这个是指开辟一段空间 里面存放字符 关键是存放内容的性质不同char* s1 = "123",字符串"123"这段内存是只读的,就是说其内容不能改变; s1[0]="0";//这样写就是错误的char s2[]="123",...
阅读全文
摘要:今天看到别人这样写: printf("res =%02x \n",(unsigned short)res ); 没看懂什么意思,百度了一把,解释如下:X 表示以十六进制形式输出02 表示不足两位,前面补0输出;出过两位,不影响举例:printf("%02X", 0x123); //打印出:123p...
阅读全文
摘要:一、指针数组和数组指针的内存布局指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个...
阅读全文
摘要:自动变量 局部变量,如不作专门说明为静态变量,都是动态分配存储空间,存储在动态存储区中。这种变量叫自动变量。这种变量只在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。一般情况下,不作专门说明的局部变量,...
阅读全文
摘要:1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1).在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2).在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。...
阅读全文
摘要:以前上ARM课,老师讲到volatile这个关键字时,主要是说他用到更硬件相关的地方。比如我们看到很多关于硬件的头文件的时候,寄存器的定义都是几乎都是volatile与内存地址相结合,因为我们时刻想要的是寄存器的最新值,而volatile这个关键字的作用就是告诉编译器不要对它声明的变量进行优化,每次...
阅读全文
摘要:int *pi; pi是一个普通的指向整型指针int const *pci; 是一个指向整型常量的指针。你可以修改指针的值,但你不能修改它所指向的值int *const cpi; 声明pci为一个指向整型的常量,此时指针是常量,它的值无法修改,但你可以修改它所指向的整型值。int co...
阅读全文
摘要:指针的定义 地址: 内存单元的编号 从零开始的非负整数 范围:【0----4G-1】 指针 指针就是地址,地址就是指针 指针变量就是存放内存单元编号的变量,或者说指针变量就是存放地址的变量 指针和指针变量是两个不同的概念 但是要注意:通常我们叙述时...
阅读全文