0%

C语言基础 与其他语言(Java)不同的地方,以及printf的使用

因为在Android开发中需要用到NDK,需要会点C语言,而我之前没学过(只学过一学期的C++,但都还给老师了),所以从今天开始学习C语言。干SOHO不容易,什么都要会点,Photoshop、HTML、CSS、JavaScript、PHP、JAVA、C、Android、Linux等等,一个字,累。今天是学习C语言第一天。 因为我之前直接跳过了编程之基础的C语言,现在回头学,感觉有点复杂,没有JAVA来得方便。下面是与JAVA的一些不同。 1、C语言好像没有专门的字符串数据类型,定义字符串需要用char数组,或者char指针,如:

char *d = "asdf";
char e[]="abcd";

2、printf相对于Java的System.out.print要复杂得多。printf不能直接输出变量而是需要输出变量的类型和变量两个参数。Java也有printf函数,但我一般都用print和println,简单一些。 如:

    int a = 15;
    float b = 5.3f;
    printf("a=%d,b=%f",a,b);

上面代码输出的值是a=15,b=5.3f。百分号后的d,f根据输出变量数据类型而变。 输出十进制整型时,用d或i 输出十进制长整型时,用ld 输出无符号的八进制整数时,用o(小写ou) 输出无符号的十进制整数时,用u 输出无符号的十六进制整数时,用x,10到15表示为abcdef,#x会在开头加上0x 输出无符号的十六进制整数时,用X,10到15表示为ABCDEF,#X会在开头加上0X 输出浮点值时,用F或f,double双精度用lf 输出浮点值需要用科学记数法表示时,用E或e 输出单个字符时,用c 输出字符串时,用s 注意,这个是用来表示输出的数据类型,并非输入的数据类型。如上面例子的a,如果在printf里用d,输出就是15,但是如果用o(八进制)输出就是17,程序会自动作转换。 暂时这么多,随时补充