设为首页收藏本站

无忧开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索

跟涛哥一起学习c语言的特点

[复制链接]
adminjet 发表于 2017-3-21 17:29:18 | 显示全部楼层 |阅读模式
1、c语言特点

我的第一个c语言程序

#include<stdio.h>
int main()//这个我的第一个c语言程序
{
printf(“hello world\n”);
Return 0;
}
/*
有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴
*/
1.1关键字
1.1.1数据类型相关的关键字
char 、short int、int 、long int、 float、double、
struct、union、enum 、signed、unsigned、void

char  字符型 ,用char定义的变量是字符型变量,占1个字节
char  ch='a';

short 短整型 ,使用short 定义的变量是短整型变量,占2个字节
short int a=11;

int 整型 ,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占2个字节
int a=44;

long 长整型 用long 定义的变量是长整型的,在32位系统下占4个字节
long int a=66;

float 单浮点型 (实数),用float定义的变量是单浮点型的实数,占4个字节
float b=3.8;

double 双浮点型 (实数),用double定义的变量是双浮点型的实数,占8个字节
double b=3.8;


struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型,以后讲结构体的时候再讲
union 这个关键字是与共用体(联合体)相关的关键字,以后再讲
enum 与枚举类型相关的关键字 以后再讲

signed 有符号(正负)的意思
在定义char 、整型(short 、int、long) 数据的时候用signed修饰,代表咱们定义的数据是有符号的,可以保存正数,也可以保存负数
例1:signed int a=10;
        signed int b=-6;
        注意:默认情况下 signed 可以省略 即 int a=-10;//默认a就是有符号类型的数据


unsigned 无符号的意思

在定义char 、整型(short 、int、long) 数据的时候用unsigned修饰,代表咱们定义的数据时无符号类型的数据
只能保存正数。
unsigned int a=101;

扩展:正数和负数在内存中到底是怎么存的

源码、反码、补码

规定:

正数的源码反码和补码相同 5
0000 0101

负数:-5
最高位为符号位 最高位为1代表是个负数
源码:
1000 0101

反码:除了符号位 其他位取反
1111 1010

补码:反码 +1
1111 1011
注意:负数在内存中是以补码形式存放的
void  空类型的关键字
char、int 、float 都可以定义变量
void不能定义变量,没有void类型的变量
void是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
例1:
void fun(void)
{
}
代表fun函数没有返回值,fun函数没有参数
例2:
#include <stdio.h>
int main()
{
        char a;
        short int b;
        int c;
        long int d;
        float e;
        double f;
        printf("%d\n",sizeof(a));
        printf("%d\n",sizeof(b));
        printf("%d\n",sizeof(c));
        printf("%d\n",sizeof(d));
        printf("%d\n",sizeof(e));
        printf("%d\n",sizeof(f));
        return 0;
}

register  是 寄存器的意思,用register修饰的变量是寄存器变量,
即:在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配在寄存器中。
注意:
1:定义的变量不一定真的存放在寄存器中。
2:cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
3:因为寄存器比较宝贵,所以不能定义寄存器数组
4:register只能修饰 字符型及整型的,不能修饰浮点型
register char ch;
register short int b;
register int c;
register float d;//错误的
5:因为register修饰的变量可能存放在寄存器中不存放在内存中,所以
不能对寄存器变量取地址。因为只能存放在内存中的数据才有地址
register int a;
int *p;
p=&a;//错误的,a可能没有地址

static 是静态的意思
static可以修饰全局变量、局部变量、函数
这个以后的课程中重点讲解
const
const 是常量的意思
用const修饰的变量是只读的,不能修改它的值
例3:
const int a=101;//在定义a的时候用const修饰,并赋初值为101
从此以后,就不能再给a赋值了
a=111;//错误的

const可以修饰指针,这个在以后课程中重点讲解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无忧开发者社区 (京ICP备09010168号

GMT+8, 2018-1-21 18:20 , Processed in 0.227325 second(s), 36 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 51Develop.Net

快速回复 返回顶部 返回列表