0%

变量的定义位置

先上一段看来比较正常的代码:

 1#include<stdio.h>
 2#include<stdlib.h>
 3
 4int main(void){
 5	printf("Tim\n");
 6	int a = 10;
 7	printf("a = %d\n",a);
 8	system("pause");
 9	return 0;
10}

由于我的环境是VisualStudio2013,所以上述程序可以完美执行,并且是编译0警告通过,但是在VisualStudio2008的环境下这样写是完全错误的,C89规定,在任何执行语句之前,在块的开头声明所有局部变量。但是在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。例如下面的写法对于C89标准才是正确的:

 1#include<stdio.h>
 2#include<stdlib.h>
 3
 4int main(void){
 5	printf("sssssssss\n"); 
 6	{
 7		int a = 10;
 8		printf("a = %d\n", a);
 9	}
10
11	system("pause");
12	return 0;
13}

当然为了达到更好兼容性,建议都把局部变量写在代码块的开始位置!!

mark 这是几个由二维数组构成的迷宫,简单的迷宫,多通路不带环的迷宫,多通路带环的迷宫!对于简单迷宫我们需要判断是否有出口!对于多通路不带环的迷宫我们需要确定出口并且判断最短路径,对于通路间带环的迷宫我们需要找出最短路径!

常见布局

相对布局 RelativeLayout

  • 组件默认左对齐、顶部对齐

  • 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1"

  • 设置在指定组件的下边 android:layout_below="@id/tv1"

  • 设置右对齐父元素 android:layout_alignParentRight="true"

  • 设置与指定组件右对齐 android:layout_alignRight="@id/tv1"

线性布局LinearLayout

  • 指定各个节点的排列方向

  • 设置右对齐 android:layout_gravity="right"

  • 当竖直布局时,只能左右对齐和水平居中,顶部底部对齐竖直居中无效

  • 当水平布局时,只能顶部底部对齐和竖直居中

  • 使用match_parent时注意不要把其他组件顶出去

  • 线性布局非常重要的一个属性:权重 android:layout_weight="1"

  • 权重:按比例分配屏幕的剩余宽度或者高度

帧布局FrameLayout

  • 默认组件都是左对齐和顶部对齐,每个组件相当于一个div

  • 可以设置上下左右对齐,水平竖直居中,设置方式与线性布局一样 android:layout_gravity="bottom"

  • 不能相对于其他组件布局

表格布局TableLayout

  • 每个<TableRow/>节点是一行,它的每个子节点是一列

  • 表格布局中的节点可以不设置宽高,因为设置了也无效

    • 根节点<TableLayout/>的子节点宽为匹配父元素,高为包裹内容
    • <TableRow/>节点的子节点宽为包裹内容,高为包裹内容
    • 以上默认属性无法修改
  • 根节点中可以设置以下属性,表示让第1列拉伸填满屏幕宽度的剩余空间 android:stretchColumns="1"

绝对布局AbsoluteLayout

  • 直接指定组件的x、y坐标 android:layout_x="144dp" android:layout_y="154dp"

注意:直接复制项目需要改动的地方:项目名字、应用包名、R文件重新导包

本次介绍如下命令:du、 df、 top、 free、 pstack、su、sudo、 adduser、 passwd

du命令

Linux下命令,统计目录(或文件)所占磁盘空间的大小!

格式:du [选项] [文件]

完整格式:du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将BCPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。即是著名的ANSI C。而C++就是以ANSI C为基础进行开发的,本文重在C的指令和C++的引用的区别。

指针是C/C++的精华,如果未能很好的掌握指针也基本等于没学,本篇主要内容有:数组指针、指针数组、函数指针、函数指针数组、指向函数指针数组的指针、指针与数组的区别、多维数组与多级指针。暂且不要觉得这些概念比较复杂,且听我逐一道来!

之前一直以为sizeof(char)、sizeof(int)…居然一直以为sizeof是函数,其实sizeof在C中只是一个关键字!!!

之前一直以为sizeof(char)、sizeof(int)…居然一直以为sizeof是函数,其实sizeof在C中只是一个运算符!!!

之前一直以为sizeof(char)、sizeof(int)…居然一直以为sizeof是函数,其实sizeof在C中只是一个操作符!!!

首先看看这份我总结的这份C语言大纲,大概也就知道C语言的关键字处在那个地位了,同时也可以作为一份复习的资料,虽然C语言看起来就这么一些知识点,但是我只能说我看到的知识C语言的冰山一角,想要彻底了解C语言,还是需要多看看书,甚至可以尝试去写一个C的编译器,也算是一大壮举了,语言的特性只有编译器的设计者最清楚!