文章标题

基础

为甚么学C

主要是因为最近在学习nginx
这货是用C写的,如果想自己写一个模块,并编译到nginx当中,那么C必不可少

helloworld

在虚拟机192.168.27.131上的/home/solofeng/study/repos/C下开展国际惯例

[solofeng@com C]$ vi helloworld.c
==========================
#include <stdio.h>

int main(){
    printf("hello world! \n");
    return 0;
}
==========================
[solofeng@com C]$ gcc helloworld.c -o helloworld   /*编译*/ 
[solofeng@com C]$ ls
helloworld  helloworld.c
[solofeng@com C]$ ./helloworld     /*执行*/ 
hello world! 

关于C中的格式化输出的%

    实际上在输出中是作占位符的作用
    格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。 
格式字符有d,o,x,u,c,s,f,e,g等。 
如
%d  digit       整型输出,%ld长整型输出,
%o  octonary    以八进制数形式输出整数,
%x  hexadecimal 以十六进制数形式输出整数,或输出字符串的地址。
%u  unsigned    以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。
%c  char        用来输出一个字符,
%s  string      用来输出一个字符串,
%f  float       用来输出实数,以小数形式输出,默认情况下保留小数点6位。
%11.9f  float       用来输出实数,总位数11位,小数点后9位
%e          以指数形式输出实数,
%g          根据大小自动选f格式或e格式,且不输出无意义的零。

变量

1. 数据类型
基本类型
    int
    char
    float
    double
    _Bool(布尔)
    enum(枚举)
指针类型
构造类型
空类型
2. C的数据类型有点特殊,他的大小会根据不同的环境会有所异同,这就很尴尬了.我只能大概知道他的大小.而且还可以分为有符号signed和无符号unsigned
    char 1byte;
    short 2byte;
    int 4byte;
    long 8byte;
    emmm,和java其实一样呀
3. 进制转换,略
4. 反码,补码,略

举个栗子:
[solofeng@com C]$ vi helloworld.c
==========================
#include <stdio.h>
#define name "guangda"
int main(){
    printf("hello world! \n");
    printf("hello ,i m %s.\n",name);
    return 0;
}
==========================
[solofeng@com C]$ rm helloworld
[solofeng@com C]$ gcc helloworld.c -o helloworld
[solofeng@com C]$ ls
helloworld  helloworld.c
[solofeng@com C]$ ./helloworld 
hello world! 
hello ,i m guangda.


上文中的#define name "guangda"
注意#在C中不是注释,放在前面表示宏定义(大概可以理解为预定义,在这里就是预定义了一个全局变量name,所有函数皆可用)

疑问: int,char,float等类型的字节数是固定的,string实际上是字符数组,那么C如何让cpu知道哪里是数组的结尾
回答: 实际上,存储字符串数组时,除了字符串本身以外,在最后一个字符的后一位存储一个"\0"表示数组的结束,当cpu读取到"\0"时,便明白字符串结束了,不再往下读取

运算符&语句&注释

+ - * / %
++ -- += -= *= /= %=
< > = != >= <= ==
>> <<
& | ~ 
&& || !
sizeof (长度运算符)
. (对象运算符)
-> (指针运算符)
pow函数->幂函数(例如求210次方)



if(){}
if(){}else{}
if(){}else if{}else{}
switch(){
    case num: expression; break;
    default: expression; break;
}
while(){}
do{}while();
for(){}
三元exp1 ? exp2 : exp3;


//
/**/

数组

int list[10] = {
  1,2,3};
sizeof(list)结果是返回数组占的空间的大小,而不是元素的个数
char name[] = "guang";
char name[] = {
  'g','u','a','n','g&#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值