NDK探究之旅《二》—C语言的基本认识
于亚豪的博客地址
如果对jni和ndk认识还不是太了解,建议先阅读上一篇博文
NDK探究之旅《一》——对jni和NDK的认识
C语言是什么
如何看待C语言
学好C语言,你可以很好地应付任何一种编程工具。
一定要多敲代码,通过程式了解相关知识。几经反复方得正果。
不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。
如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。
C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。
不要完全相信教材,所有结论竟实践验证最好
C程序的构成
尽管C程序的内容千变万化,但是它们的构成都是一致的,一个完整的C源程序的格式可以如下表示:
C语言的基本词法
C语言的基本词法由三部分组成:
符号集
符号集就是一门语言中允许出现的字符的集合,C语言的符号集就是ASCⅡ码表中的一些字符,在键盘上不能直接得到(比如说响铃字符)
关键字
标识符就是用以标识的符号。正如现实生活中给每一个人都取一个名字一样,C语言中的每一个对象(如函数、变量等)都必须取一个标识符以和其它对象区别开。
保留字。
关键字实际上就是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新定义。
头文件、数据说明、函数的开始和结束标志
头文件:也称为包含文件或标题文件,一般放在一个C语言程序的开头,用#include″文件名″的格式,其中文件名是头文件名,一般用.h作为扩展名。
数据说明:C语言中的数据分常量和变量两种。
常量:有数值常量和符号常量两种。
数值常量:可以分为整型常量、实型常量、浮点型常量和字符常量。
符号常量:用一个标识符代表的一个常量,又称标识符形式的常量
变量:其值可以改变的量,变量名习惯上用小写字母表示。
标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
标识符的命名规则:C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。
C语言的基本数据类型
java 语言的八基本类型
byte 1个字节 8位
int 4个字节 32位
double 8个字节 64位
float 个字节 32位
long 8个字节 64位
char 2个字节 16位
boolean 1个字节 8位
char 2个字节 8位
C语言的基本数据类型
注意:
eg: %d表示的是一个int数据类型。%只是一种格式 &是取地址,&i表示为取内存中i的地址
修饰符的作用
输出类型函数: %d---> int
格式字符 | 意义 |
---|
d% | 以十进制形式输出带符号整数(正数不输出符号)-->int |
o | 以八进制形式输出无符号整数(不输出前缀0) |
x,X | 以十六进制形式输出无符号整数(不输出前缀Ox)--->int 或者是 long int short int |
u | 以十进制形式输出无符号整数 |
f | 以小数形式输出单、双精度实数 |
e,E | 以指数形式输出单、双精度实数 |
g,G | 以%f或%e中较短的输出宽度输出单、双精度实数 |
c | 输出单个字符 |
s | 输出字符串 |
ld | long int |
hd | 短整形 half |
lf | 输出 double |
C语言常用转义字符表
ASCII码表完整版
ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 |
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | ” | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | X | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | / | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | — | 127 | DEL |
|
|
(该表来自http://blog.csdn.net/abc5382334/article/details/13997005)
C语言常用转义字符表
转义字符 | 含义 | ASCII码(16/10进制) |
o | 空字符(NULL) | 00H/0 |
n | 换行符(LF) | 0AH/10 |
r | 回车符(CR) | 0DH/13 |
t | 水平制表符(HT) | 09H/9 |
v | 垂直制表(VT) | 0B/11 |
a | 响铃(BEL) | 07/7 |
b | 退格符(BS) | 08H/8 |
f | 换页符(FF) | 0CH/12 |
’ | 单引号 | 27H/39 |
” | 双引号 | 22H/34 |
| 反斜杠 | 5CH/92 |
? | 问号字符 | 3F/63 |
ddd | 任意字符 | 三位八进制 |
xhh | 任意字符 | 二位十六进制 |
(该表来自http://blog.csdn.net/abc5382334/article/details/13997005)
字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。
在C程序中使用转义字符 d d d或者 x h h可以方便灵活地表示任意字符。
d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。
x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。
使用转义字符时需要注意以下问题:
转义字符中只能使用小写字母,每个转义字符只能看作一个字符。
v垂直制表和f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
在C程序中,使用不可打印字符时,通常用转义字符表示
注:
'v'垂直制表和f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。
t光标向前移动四格或八格,可以在编译器里设置
'在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用'即可。
?其实不必要。只要用?就可以了(在windows VC6和tc2中验证)。
简单的踩坑:
cpp `system' undeclared (first use this function)
解决办法:
注意 打印的时候,什么样的数据,需要用什么样的占位符,否则数据打印出错
NDK探究之旅《一》——对jni和NDK的认识
博客地址:
让心,在阳光下学会舞蹈
让灵魂,在痛苦中学会微笑
—终端研发部—
如果你觉得此文对您有所帮助,欢迎入群 QQ交流群 :232203809
微信公众号:终端研发部
(欢迎关注学习和交流)
(欢迎关注学习和交流)