C语言基础知识学习(一)

 我们学好C 语言的理由:
  第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。 
  第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个例外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。 
  第三:很多新型的语言都是衍生自C语,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。 
 以上的种种理由都说明,作为一名立志在IT行业工作的大学生,你应该好好学习C语言的基础知识。打好基础,方能为以后在更高的领域发展。
下面是我学习C语言基础知识(数据类型)里面总结的一些我认为重要的知识点:
  • C语言的程序构成方式
  • C语言的标识符
  • C语言的数据类型(区分字符常量以及字符型常量)
  • 基本类型的书写
  • 变量的概念
  • printf函数的使用
  • 变量为何要区分类型



1. C语言的程序构成方式

 1)c语言程序由函数构成,每个函数可以实现一个或多个功能。

2)一个正规程序可以有多个函数,但是有且只有一个主函数。

3)函数只有在被调用的时候才执行,主函数由系统调用执行。

4)函数的格式必须按照规范书写。

5)C 语言程序文件的后缀为  .c



2 c语言的标识符

标识符分关键字,预定义标识符和用户标识符。

1)标识符命名原则

a,只能有字母,数字,下划线组成。

b,不能以数字开头

c,不能与关键字重名。

d,严格区分大小写。


2)标识符命名规范

a,驼峰命名法。(第一个单词首字母小写,其他单词首字母大写)。getName。

b,名称简练,望文知意

c,避免出现数字编号。name1,name2.

d,多个文件共同使用的全局变量或者函数名称加范围限定符。UI_name

   

3) 关键字就是C本身使用的,不能作他用的字。总共有32个。

数据类型关键字:void int  char float double (5)

类型修饰符关键字:short long signed unsigned(4)

复杂类型关键字:struct  enum    union(3) 

流程控制关键字:for break continue do while   if else  goto  suitch case default  return(12)

存储类型关键字:auto extern  static  regist ( 4)

其他关键字:const sizeof  typedel    volatile(4)





3. 数据类型

常用基本数据类型占用空间(64位机器为例)(重点)

char :  1个字节 

int     :4个字节

float:4个字节

double:8个字节


后记:上面说的几个数据类型所占用的字节空间还不怎么正确,现在重新做个补充说明

1.字符常量只占一个字节说法不够准确

举例:char ch = '$';
其中 变量 ch 就只占用 1 个字节的内存,而 字符 '$' 会被存储为int类型,一般为32 bits,也就是4 bytes.


2.对于64 bits 的机器:
其 int 类型可能为 32 bits, 也可能为 64 bits, 视编译器而定


最后,感谢给我留言的朋友,能够让我及时的发现自己的错误@qq_37824129



4.基本类型书写


整数

a,默认为10进制 ,10 ,20 .

b,以0开头为8进制,045,021.

c.,以0b开头为2进制,0b11101101。

d,以0x开头为16进制,0x21458adf。


小数

单精度常量:2.3f 。

双精度常量:2.3 .默认为双精度。


字符型常量

用英文单引号括起来,只保存一个字符‘a’,‘b’ ,‘*’ 还有转义字符 ‘\n’ 。‘\t’


字符串常量

 用英文的双引号引起来 可以保存多个字符。“abc”

  •  字符常量和字符型常量的区别
          形式上:          字符常量是单引号引起的一个字符;
                                  字符串常量是双引号引起的若干个字符;
          含义上:          字符常量相当于一个整型值,可以参加表达式的运算;
                                  字符串常量代表一个地址值(该字符串在内存中存放的位置);
          占内存大小:   字符常量只占一个字节;
                                  字符串常量占若干个字节,(至少一个字符结束标志)


5.  变量的概念

变量代表某个内存空间,取值可以改变。是数据的基本单元,由类别和变量名构成。

1)变量的定义格式:  变量类型   变量名,变量名......; 可以一次定义多个变量,中间用逗号隔开。

int a ,b,c;

注意:变量名命名规范遵守标识符命名规范。


2)变量的初始化

a ,定义变量同时初始化

完全初始化 。变量类型  变量名=值, int a=10,b=20;

·部分初始化。 int  a =10,b; a初始化 ,b未初始化。

b , 先定义变量后初始化。

int  a,b,c;

a=10;

b=20;

c=30;

c ,使用变量对变量初始化。

int a=10;

int b=a;

d,变量连续赋值

int a=b=10;

注意:变量定义的时候一定要进行初始化,未初始化的变量使用时可能会产生随机数。


3)变量的作用域

变量分全局变量和局部变量。

局部变量:在函数内或者代码块内定义的变量,作用域是从变量定义位置到代码块结束。代码块结束时,变量销毁

全局变量:在函数外定义的变量,作用域是从定义位置到程序最后,只有在整个程序运行结束时,变量才销毁。

注意:代码块内部定义的变量屏蔽代码块外部的变量。



6.  printf函数使用

使用时需要引入标准输入输出头文件    # includ   <stdio.h>   没有分号  


1)格式   printf(“格式占位符”,变量列表);  格式占位符的数量要和变量列表的数量一致。


2)常用占位符

%d  输出10进制整数

 %md   输出m位,不足左补空格,其他正常输出。

%0md 输出m位,不足补 0 ,其他正常输出。

%c  输出字符串

%f   输出实数  

默认为6位小数,有效数位为7 ,不足末尾补0。

%.2f  输出两位小数的实数,四舍五入。

%m.nf  输出m位其中小数n位。四舍五入,小数不足补0 ,整数不足(m-n)位左补空格。

%m.nf  输出m位其中小数n位。四舍五入,小数不足补0 ,整数不足(m-n)位右补空格。

%s  输出字符串。

%o  输出8进制数

%x  输出16进制数

%p  输出变量内存地址

常用 转义字符  

\t  输出制表符

 \n 输出换行

 \\ 输出 \

%%输出 %



7.变量为什么区分类型

1) 合理使用内存

  2) 数据的存储格式不同

  3) 数据的运算方式不同



8.scanf函数(阻塞式函数)

阻塞式函数执行时会等待用户输入之后才能进行。

作用:接收键盘输入的内容

 格式: scanf(“格式控制符”,变量地址列表);   & 取变量的地址。

使用注意事项

1)接收单个变量时在输入值之前,输入的空格,回车和制表符都会被忽略。

 2)默认多个值之间用空格分隔。中间的空格回车制表符都会被忽略。

3)如果格式控制符设置为,分隔,在输入的时候需要使用,。

4) %*c  跳过一个字符  %*d 跳过一个整数。

5)在使用scanf 不能使用 \n。




9. scanf运行原理


1)当用户输入内容后,这些内容会被存到scanf的输入缓冲区中,然后会根据格式控制符要求从缓冲区中依次取值

如果缓冲区的值与要求的格式一直,会把值赋值给变量,如果格式不一致则无法赋值。


例: scanf(“%d%c%d”,&a,&b,&c);

控制台输入   10 a 20 回车

此时缓冲区中存储了  10 a 20   包含空格。

取值时先取%d格式的10赋值给变量a

之后向下取%c格式的值,此时缓存区会把空格赋值给变量 b

之后取%d格式的值,此时缓冲区会取a字符 此时格式不对,不赋值

赋值之后 a=10,b=‘a'  c未赋值。

建议输入混合型数值的时候加逗号进行分隔


2)如果缓冲区中有内容,不会提示我们输入值。输入时回车也会接收。

scanf(“%c”,ch);可以接收回车。




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值