c课堂笔记 day-1

c语言之父:丹尼斯.里奇

c语言的优缺点:看书查找

1.c的引入:

gcc编译的格式:gcc hello.c -o hello -o是目标的意思object;

hello world程序的解析:

< #>:预处理命令 include:头文件的包含 <>:把括号里的内容引入到源文件中
<stdio.h>:标准输入输出头文件,是计算机自带的库,可以直接使用
< main>:函数名,main()是主函数,c程序源文件有且只能有一个main()函数!!!c程序的入口,即所有的c程序都是从
main函数开始执行;
int argc:参数的个数; char *argv[]:记录参数
printf():是库函数,包含在<stdio.h>中;
return 0:返回,或者函数结束;
注:以上内容基本决定了程序的框架;

c的数据类型:

基本数据类型:
int:基本整型
short int:短整型
long int:长整型
unsigned :无符号
signed:有符号
char 字符型 getchar 只能得到一个字符
float 单浮点类型:小数点后6位
double 双浮点类型: 小数点后15位
numf e/E n :e为10的n次方
例:12.2E3<=====>12.2*10^3
enum 枚举类型
构造数据类型:
数组类型,结构体(struct),联合体(union)
指针类型:
空类型: void

2.变量的定义:

    data:数据
    type:类型
    value:值

DataType Name1,Name2,......,Numen;
可以定义多个变量,中间用逗号隔开,结尾用分号结束!!
DataType Name; 一行定义一个变量最好
DataType Name1;
建议一行定义一个变量并初始化

3.标识符:

包括变量名,函数名,及其它标号等;
(1)标识符的命名要求
字母(A~Z,a~z),下划线(_),数字组成;
且规定:第一个字符不能为数字;
(2)命名规则:
可读性要高,做到“见名知义”
驼峰命名法;
尽量不要用汉语拼音!!!

4.格式输入\输出:scanf()\printf()

printf("占位符",参数):按一定格式输出,一一对应!!
也可以直接输出printf("====")
%m.nf:m代表总位数(%5.3f=3.142 包含小数点加起来共五位数,小数点后面三位),n小数部分保留几位
%-m.n:左对齐! %m.n:右对齐! 正负决定左右对齐;
scanf("占位符",参数): 按一定格式输入,一一对应!!
&(取地址符):取相应地址

#######include<stdio.h>
int main()
{
float numf=1.234;

//按一定格式输出
printf("numf=%f\n",numf);
//输入numf的值,&numf为取地址符,将输入的 数据保存
//到numf对应的内存空间中!
scanf("%f",&numf);
printf("numf=%5.3f",numf);

}

\

#######include<stdio.h>
int main()
{
int numt=123;
float numf=1.23;
printf("input two num:\n");
//printf给的什么格式scanf就按一定格式输入
scanf("%d,%f",&numt,&numf);
printf("numt=%d\tnumf=%f\n",numt,numf);
//\t 制表符;
return 0;
}

 占位符:
           printf         scanf
 int            %d         %d              
 char           %c         %c
 long           %ld        %d
 float          %f         %f
 double         %lf        %f
 字符串         %s

5.常量

数字常量:123 1 567 -234
字符常量:'d' '$' '?' 'A'
实型常量:1.234 3.1415926 -1.423
字符串常量:由双引号括起来的字符序列(由一个或多个字符组成的)
注意:字符串和字符的区别
'a':字符 占一个字节
"a":字符串 占两个字节 默认结束标志为‘\0’, 一般不显示
表示形式: "ahsoifhaiu" "asdf?<@sdaf"

6.变量和常量的区别:

变量:
其职可以更改!
先定义,后使用!
常量:
其值不可更改!
随时可以使用,无需定义或声明!
#include<stdio.h>
int main()
{
int numt=34; //变量先定义后使用
//常量名=值
printf("numt=%d,888=%d\n",numt,888);
return 0;
}

二、运算符

1.sizeof():计算大小,得出对应变量或数据类型所占内存空间大小
单位:字节(byte) 1字节=8位(bit)
sizeof DataType:
64位机下:

#######include<stdio.h>
int main()
{
printf("sizeof DataType:\n");
printf("sizeof(char)=%ld\n",sizeof(char)); =1
printf("sizeof(int)=%ld\n",sizeof(int)); =4
printf("sizeof(short)=%ld\n",sizeof(short)); =2
printf("sizeof(long)=%ld\n",sizeof(long)); =8
printf("sizeof(float)=%ld\n",sizeof(float)); =4
printf("sizeof(double)=%ld\n",sizeof(double)); =8
return 0;
}

#######include<stdio.h>
int main()
{
char ch;
short short_size;
int int_size;
long long_size;
float float_size;
double double_size;
printf("sizeof(ch)=%ld\n",sizeof(ch));
printf("sizeof(short_size)=%ld\n",sizeof(short_size));
printf("sizeof(int_size)=%ld\n",sizeof(int_size));
return 0;
}
注意:对比数据类型所占大小,和其定义的变量所占内存的大小!

2.算数运算符(七个)

加:+ 减:- 乘:* 除:/ 取余:% a%b求余 6%4余2

    #include<stdio.h>
    int main()
    {
        int a=12;
        int b=3;
        int sum=a+b;
        //或者:int sum;
        printf("%d,%d,%d\n",a,b,sum);
        return 0;
    }

    #include<stdio.h>
    int main()
    {
        int a=12;
        int b=3;
        int sum=a-b;
        int c=a*b;
        int d=a/b;
        //或者:int sum;
        printf("%d,%d,%d,%d,%d\n",a,b,sum,c,d);
        return 0;
    }

自增:++
++i :num=++i; i=i+1; num=i;
i++ : num=i; i=i+1;
#include<stdio.h>
int main()
{
int num=5;
int sum=++num + ++num; 6+6
printf("sum=%d\n",sum);
int i=5;
int j=i++ + i++; 5+5
printf("i=%d j=%d\n",i,j);

    }

自减:-- --i i--

    #include<stdio.h>
    int main()
    {
       int num=5;
       printf("%d\n",++num);6
       printf("%d\n",num++);6
       printf("%d\n",num--);7
       printf("%d\n",++num);7
       printf("%d\n",num++);7
    }

关系运算符:(结果成立为1 不成立为0)
大于:>
小于:<
等于等于:==
大于或者等于:>=
小于或者等于:<=
不等于:!=

#######include<stdio.h>
int main()
{
int a=3;
int b=4;
printf("a>b:%d\n",a>b); =0
printf("a<b:%d\n",a<b); =1
printf("a==b:%d\n",a==b); =0
printf("a<=b:%d\n",a<=b); =1
printf("a>=b:%d\n",a>=b); =0
printf("a!=b:%d\n",a!=b); =1
}

逗号运算符(,):

表达式1,表达式2,表达式3;
其中每个表达式又可以是一个逗号表达式!
一次计算表达式1,表达式2,表达式3的值,整个逗号表达式的值取决于最后一个表达式的值
#include<stdio.h>
int main()
{
int a=4;
a+2,a3,a-5;
printf("a=%d\n",a); a=4
(a=a+3,a
2),a/3; //有等于号才赋值 这里a=a+3
printf("%d\n",a); a=7

    }

使用scanf()注意事项
(1) 一定要严格按照scanf()中的格式输入变量的值!!
(2) 使用scanf()时,取参数列表中参数的地址,scanf()是将输入的值保存到变量对应的地址中!
(3) 缓存区问题
scanf() 函数中不能使用换行符:\n;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容