
剖析C语言
文章平均质量分 91
蜗蜗前行
嵌入式软件
展开
-
嵌入式笔试题总结
预处理器(Preprocessor)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) “`c #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是原创 2016-11-05 08:45:11 · 1545 阅读 · 0 评论 -
char *p = NULL,int *p = NULL的区别
void main() { int *p = NULL; cout << p << endl; cout << &p << endl; } 输出结果为: 0x00000000 0x00125731 void main() { char *p = NULL;原创 2016-12-08 20:41:05 · 3790 阅读 · 0 评论 -
c语言指针集合
指针与一维数组一维数组访问数组元素的4种方法: 1.下标法,用a[i]来访问数组元素; 2.指针法,(ptr+i)形式间接访问; 3.数组名,用(a+i)形式访问数组; 4.指针下标法,ptr[i]形式访问数组元素; 二维数组访问数组元素 1.int *ptr;ptr=a[0]; for(i=0;ifor(j=0jscanf("%d",ptr++);原创 2016-03-20 18:21:35 · 1098 阅读 · 0 评论 -
字符数组
昨天在写c和指针的课后题时候总是编译不通过,是一个叫 incompatible assignment types 什么的错误,我将一个数组char a[100] 赋值一个字符串常量a=”HUNDRED “; 会报错 如果改为 a[0]=”HUNDRED “; 不会报错,但是运行结果打印字符串打不出任何东东 如果把a改成动态数组就像char a=(char )malloc(100);原创 2017-03-13 12:34:05 · 403 阅读 · 0 评论 -
指针加常数的计算结果
#include <stdio.h> struct BBB { long num; char *name; short int data; char ha; short ba[5]; }*p; int main() { p = 0x1000000; printf(" p+0x200=0x%08x\n原创 2017-07-20 13:31:42 · 1454 阅读 · 0 评论 -
C语言判断大小端存储
用C语言写程序时需要知道是大端模式还是小端模式。 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 为什么会有大小端模式之分呢? 这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在c语言中除了8bit的char之原创 2017-07-17 10:37:50 · 651 阅读 · 0 评论 -
C语言之指针的初始化和赋值
1.指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以用整型的地址值(但是int *p=0;除外,该语句表示指针为空)此时,*p=只是表示定义的是个指针变量,并没有间接取值的意思。Example 1:int a=25;int *ptr=&a;int b[10];int *point=b;int *p=&b[0];如果:int *p;*p=7;//编原创 2017-07-17 11:26:53 · 1930 阅读 · 0 评论 -
c语言之强制类型转换
C语言中,任何一个变量必须有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占用的空间代码不一样,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以不能简单的通过检查一个值的位来判断它的类型。 例如:定义如下: int a; float b; double c;原创 2017-07-17 13:22:22 · 1488 阅读 · 1 评论