- 博客(12)
- 资源 (1)
- 收藏
- 关注
转载 接上二维数组
二维数组的运算和指针指针指向二维数组的数组名:(1)二维数组的数组名表示二维数组的第一维数组中首元素(也就是第二维的数组)的首地址(2)二维数组的数组名a等同于&a[0],这个和一维数组的符号含义是相符的。(3)用数组指针来指向二维数组的数组名是类型匹配的。指针指向二维数组的第一维?(1)用int *p来指向二维数组的第一维a[i]
2016-02-24 23:31:08 357
转载 二维数组的运算与指针
int main(void){int a[2][5] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};//int a[2][5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};printf("a[1][3] = %d.\n", a[1][3]);printf("a[1][3] = %d.\n", *(*(a+1)+3));
2016-02-24 22:52:47 499
转载 typedef与const
typedef int *PINT; const PINT p2; 相当于是int *const p2;typedef int *PINT; PINT const p2; 相当于是int *const p2;
2016-02-23 22:42:32 405
转载 汇编指令b 和 bl
b用于不返回的跳转,比如跳到某个标号处,b . 其中的‘.’代表当前地址,那么 b . 就是死循环。bl用于子程序跳转,要返回地址,返回地址存于LR中。
2016-02-19 11:25:58 19390 1
转载 LDR/STR
LDR --- Load from memory into a registerSTR --- Store from a register into memory在ARM架构下, 数据从内存到CPU之间的移动只能通过LDR/STR指令来完成. 而MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中,并且数据的长度不能超过8位应用例子:
2016-02-16 11:41:37 407
转载 define与typedef一点点
#define dpchar char*typedef char* tpchardpchar p1,p2; //展开相当于char* p1,p2tpchar p3,p4;//等价于char* p3 ,char* p4
2016-02-15 00:29:58 245
转载 数组做函数形参时
#include#includevoid func(int a[]){ printf("数组大小=%d.\n",sizeof(a));}void func1(int *a){ printf("数组大小=%d.\n",sizeof(a));}int main(void){ int a[20]; func(a); func1(a);
2016-02-15 00:21:47 522
转载 strlen()和sizeof()
strlen()是函数,sizeof()是C语言的运算符。char str[]="hello";char *p=str;sizeof(str)为6.sizeof表示的是所占空间的大小,包括字符串结束标志符‘\0’。strlen(str)为5.只是求出字符串的个数,故不包括字符串结束符。sizeof(p)为4(32位编译器时,64位时为8),p是指针变量本身,相当于siz
2016-02-14 22:39:38 434
转载 ./arm-none-linux-gnueabi-gcc: 没有那个文件或目录
如果安装的amd64.iso linux 交叉编译工具验证安装时可能出现。./arm-none-linux-gnueabi-gcc: 没有那个文件或目录。 解决方法是执行:sudo apt-get install lsb-coreLSB(Linux Standards Base)是一套核心标准,它保证了LINU
2016-02-06 11:23:05 2847 2
转载 a &a &a[0]
1:&a和a做右值时的区别:&a是整个数组的首地址,而a是数组首元素的首地址。这两个在数字上是相等的,但是意义不相同。意义不相同会导致他们在参与运算的时候有不同的表现。2:a和&a[0]做右值时意义和数值完全相同,完全可以互相替代。3:&a是常量,不能做左值。4:a做左值代表整个数组所有空间,所以a不能做左值。
2016-02-04 19:26:56 461
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人