标签:
关键字
关键字的定义:被C语言赋予了特殊含义的单词
>关键字的特性:全部都是小写
>关键字在开发工具中会显示特殊颜色
*编译器严格区分大小写
*note:关键字不能用做变量名\函数名等
标示符
标示符的定义:程序员在程序中为自己起得名字
标示符的命名规则
1>只能有26个英文字母的大小写或10个阿拉伯数字0-9\下划线构成
2>严格区分大小写
3>不能以数字开头
4>不可使用关键字作为标示符
注释的使用
1.单行注释
使用的范围:任何地方都可以写注释:函数外面\里面,每一条语句后面
作用的范围:从第个斜线到这一行的末尾
快捷键: command + /
2.多行注释
作用的范围:从第一个/*到最近的一个*/
3.注释的使用注意事项
1.单行注释可以嵌套单行注释 多行注释
2多行注释可以嵌套单行注释
3.多行注释不能嵌套多行注释
数据类型
C语言的数据分类视图
常见的数据类型:int double float char
*整型:用于准确的表式整数,根据表示范围的不同分为以下三种:
短整型(short) < 整型(int) < 长整型(long)
*实行(浮点型):用于标示小数,根据范围的和精度分为以下两种:
*单精度浮点小数(folat) < 双精度浮点型(double)
*note:float只能保证7位数字是有效的!!!!!
*字符型:用来描述单个字符,char
常量:表示一些固定的数据,也就是不能改变的数据
整型常量
-
- 十进制整数。如356,-120,0。
- 八进制整数。八进制形式的常量都以0开头,如0123,也就是十进制的83;-011,也就是十进 制的-9。
- 十六进制整数。十六进制的常量都是以0x开头,如0x123,就是十进制的291。
- 二进制整数。逢二进一 0b开头
实行常量
注意 :单精度小数:以f为结尾 0.0也是实行常量
字符常量
字符型常量都是用’’(单引号)括起来,其表现方式有两种:
1>一般方式 一个字符用‘’括起来,注意只能有一个字符
2>特殊形式 都是以\开头,他们在屏幕上不会被直接显示出来,而是根据其特定的功能来显示的,这些常量特殊字符有:
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。 \b 退格,相当于按一下backspace。
\r 回车。
\f 换页,光标移到到下页开头。
\\ 输出\字符,也就是在屏幕上显示一个\字符。
\‘ 输出‘字符,也就是在屏幕上显示一个‘字符。
\" 输出"字符,也就是在屏幕上显示一个"字符。
\ddd 1位到3位八进制数表示的字符。
例如:使用‘\376‘,则在屏幕上显示一个黑色的方块。 \xhh 1位到2位十六进制数表示的字符。注意x不能丢了
字符串常量
字符串常量与字符常量不同的地方是,字符串常量是用""把字符串括起来,,而且系统会在字符串常量的末尾自动加一个字符串结束标志(‘\0‘)。
自定义常量
变量的基本概念
表示的数据是可以经常修改的。当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
定义变量的格式 数据类型 变量名;
-
定义变量(声明), 任何变量在使用之前,必须先进行定义。
-
定义变量的目:在内存中分配一块存储空间给变量,方便以后存储数据。
-
如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间
- 变量名的注意事项
- 变量明的命名的规范
- 变量名属于标识符,所以必须严格遵守标识符的命名原则
- 变量名要尽可能的望文知意、简洁
变量的初始化和使用
例: int a = 10;
注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量value
变量的初始化
变量的第一次赋值
初始化的两种形式
>先定义,后初始化
int a ;
a = 12;
>定义的同时初始化
int a = 10 , b = 12; 完全初始化
int a , b = 10; 部分初始化
其他形式 批量初始化
int a, b, c;
a = b = 10;
不初始化里面存的数据是什么?
1)随机数
2)上次程序分配的存储空间,存数一些 内容,“垃圾”
3)系统正在用的一些数据
修改变量的值
- 可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值
利用printf函数输出变量的值,对应得占位符
int—>%d或%i
double —> %lf
char —>%c
float—>%f
变量的作用域
1. 全局变量
从变量的定义的那一行开始一直到程序结尾
2. 局部变量
从变量的定义的那一行开始一直到代码块结束
- 作用域补充说明(了解):
- 主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。
- 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
- 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名。
变量的内存分析
内存以“字节为单位”
一个变量所占用的存储空间,不仅跟变量类型有关,而且还跟编译器环境有关系。同一种类型的变量,在不同编译器环境下所占用的存储空间又是不一样的
- 所占用字节数跟类型有关,也跟编译器环境有关
- 内存由大到小寻址
- 变量存储单元的第一个字节的地址就是该变量的地址
- 任何变量在内存中都是以二进制的形式存储。一个负数的二进制形式,其实就是对它的正数的二进制形式进行取反后再+1。(取反的意思就是0变1、1变0)
类型
|
16位编译器 | 32位编译器 | 64位编译器 |
char |
1 |
1 |
1 |
int |
2 |
4 |
4 |
float |
4 |
4 |
4 |
double |
8 |
8 |
8 |
short |
2 |
2 |
2 |
long |
4 |
4 |
8 |
long long |
8 |
8 |
8 |
void* |
2 |
4 |
8 |
取值范围
如果赋值的时候超出了变量的取值范围,那么将损失精度,得到“垃圾数据”(“垃圾数据”就是指并非我们想要的数据
关键字 | 所占字节数 | 表示范围 |
int |
4 |
-2(31) ~ 2(31)-1 |
signed short int |
2 |
-2(15) ~ 2(15)-1 |
signed long int |
4 |
-2(31) ~ 2(31)-1 |
unsigned int |
4 |
0 ~ 2(32)-1 |
unsigned short int |
2 |
0 ~ 2(16)-1 |
unsigned long int |
4 |
0 ~ 2(32)-1 |
float |
4 |
绝对值E-37 ~ E+38 |
double |
8 |
绝对值E-307 ~ E+308
|
printf函数
printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。
- printf函数的调用格式为:
- printf("格式控制字符串",输出项列表);
- 例如:
printf("%d,%d",a, b);
scanf函数常见错误
1,scanf(“%d\n”); 不能加\n
2,scarf(“%d”, a, b); 一定要加上& 因为scarf是跟根据地址值区方位对应空间的数据
scant内存运行原理
用户输入的数据—————>缓存区—————————>从缓存区取走用户输入的数据
注意事项:
*如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的
*如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略
*如果要获取的内容是多
个实型,中间输入了多个空格、回车、Tab都会被系统忽略
总结:为防止混合输入空格造成的错误,可以通过添加普通的分隔符解决
关于使用"\n"的问题
1.scanf的运行原理
- 系统会将用户输入的内容了放入输入缓冲区
- scanf方式会从输入缓冲区中逐个取出内容赋值给格式符, 如果类型不一致不会修改原有数据
- 如果输入缓冲区的内容不为空,scanf会一直从缓冲区中获取,而不要求再次输入
调用getchar()函数可以清空缓存区的字符
Objective -C数据类型
标签:
原文地址:http://www.cnblogs.com/mshong/p/4888416.html