专注于嵌入式技术分享!
【C语言】数组与指针不等价 【C语言】数组与指针不等价
前言数组与指针是不等价的,如: 数组名不可以改变,而指向数组的指针是可以改变的。 字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。 求数组长度时,借用数组名可求得数组长度,而借用指针却得不到数组长度。
2018-10-25
【C语言】关于数组与指针的总结 【C语言】关于数组与指针的总结
前言数组与指针有很密切的联系,常见的结合情况有以下三种: 数组指针 指针数组 二维数组指针 数组指针数组指针:指向数组的指针。如: int arr[] = {0,1,2,3,4}; int *p &#x
2018-10-23
【C语言】指针变量的运算 【C语言】指针变量的运算
前言指针变量也是可以进行运算的,如指针变量对其自身加上某个整数或减去某个整数,这在内存上体现为:相对这个指针向后偏移多少个单位或向前偏移了多少个单位,这里的单位与指针变量的类型有关。在32bit环境下,int类型占4个字节,float占4
2018-10-22
【C语言】结构体内存对齐 【C语言】结构体内存对齐
先看一个结构体: typedef struct Test { char a1; int a2; char a3; short a4; }Test_T; 在32位编译系统下这一个结构体的字节数是多少呢?是1+4
2018-10-20
【C语言】指针的基本概念 【C语言】指针的基本概念
我们平时定义的变量最终都会保存在内存里,内存的最小存储单位称为内存单元。通常,一个字节称为一个内存单元。而我们定义的变量就保存在这些内存单元里,为了正确地访问这些数据,必须为每个内存单元都编上编号,每个内存单元的编号是唯一的,就像每个人都
2018-10-19
【C语言】变量的初始值是? 【C语言】变量的初始值是?
一个变量,即使没有给它赋初值,它也是有一个默认初值的。下面来看一段程序: #include <stdio.h> int a1, a2; float b1, b2; char c1, c2; int main(void) &
2018-10-18
【C语言】volatile关键字 【C语言】volatile关键字
1、volatile的作用volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 简单地说就是防止编译器对代码进行优化。比如如下程序: XBYTE[2]=0x55; XBYTE[2]&
2018-10-17
【C语言】char *str与char str[]的区别 【C语言】char *str与char str[]的区别
C语言中没有特定的字符串类型,常用以下两种方式定义字符串:一种是字符数组,另一种是指向字符串的指针。如下: (1)char str[] = "happy"; (2)char *str = "
2018-10-14
【C语言笔记】C语言编译的过程 【C语言笔记】C语言编译的过程
1、前言如果你使用的是集成开发环境,那么你点击编译按钮就可生成可执行文件,然后点击运行即可运行。那么,你知道从源代码到可执行文件经历了哪些过程吗。仅仅是编译? 下面以windows环境下的test.c为例,test.c里的代码为: #in
2018-10-14
【C语言】extern关键字 【C语言】extern关键字
extern关键字可以用来声明变量和函数作为外部变量或者函数供其它文件使用。 extern声明变量示例程序:test.h如下: //声明 extern int a; extern int b; test.c如下: #
2018-10-13
【C语言】内存笔记 【C语言】内存笔记
C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: 1、静态存储区静态存储区分为三类:只读数据区(RO Data)、已初始化读
2018-10-12
【C语言】#define与typedef的区别? 【C语言】#define与typedef的区别?
1、#definedefine是预处理指令,在编译时不进行任何检查,只进行简单的替换 宏定义的一般形式为: #define 宏名 字符串 这里所说的字符串是一般意义上的字符序列,不要和C语言中的字符串等同,它不需要双引号。 2、typed
2018-10-11
5 / 7