您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记(一) -基本语法 Basic Grammar

2015-03-13 10:42 357 查看
变量与常量

/*
* 常量:符号常量和字面常量
* 变量:变量名,值,类型
* 关键字
*/
int main(void )
{
    printf("%f\n",3.14159);
    //变量的定义;
    int a = 23;

    printf("a:%d\n",a);
    return 0;
}


/*
* 整型
* 整型常量: 123 0123 0x123
* 整型变量:short int long  long long
*           int   unsigned int
*           123   123u/U
*           123l/L
*/
int main(void)
{
    //检测int占据几个内存单元(几个字节)
    printf("%lu\n",sizeof(int));
    return 0;
}


浮点类型

/*
 * 浮点类型
 * 常量   3.4  3.4e1   3.4E2  3.4E-2  3.4f/F
 * 变量   float high = 2.3  double
 * 范围
 */
int main(void)
{

    printf("%.7lf\n",2.0-1.9);
    float f = 2.3;
    return 0;

}


字符类型

/*
   字符类型: char
   常量 ascII  ‘0’-‘9’ ‘a’-'z' 'A'-'Z'
        转义字符 ‘\n’,'\t'、'\','\'','\"','\r','\\'
        表示进制的转义:‘\xhh’,'\ddd'
   变量
   */
#include<stdio.h>
int main(void)
{
    char c1 = 'a';//区分字符0和整数0
    printf("\"%c\"\n",c1);//"a"
    return 0;
}


//10+'a'-3.1f+5/0.5 double
//'a'+'b'   int
//1+3    int

#include<stdio.h>
int main(void)
{
    int i = (int)3.4;
    printf("%d\n",i);
    return 0;
}


运算符

//算术运算符+ - * / %
//关系运算符> >= < <= == !=  关系运算符的结果用0代替假,用非0代替真
/*
   逻辑运算符 && || !
   位运算符 >> << ~ | & ^
   赋值运算符 = += *= >>=....
   条件运算符 ?:
   逗号运算符 ,,,
   指针运算符 * &
   求字节运算符sizeof
   强制类型转换运算符(类型)
   其他:[] () . ->
 */
#include<stdio.h>
int main(void)
{
    //"/"左右两边若都是整型或整型相关类型,除的结果是整型
    float f = 33*1.0f/5;//(float)33/5
    printf("%f\n",f);

    //%取余,整型取余,浮点型不取余
//  int i = 3.3%5;
//  printf("%d\n",i);

    int a = 20,b=30;
    printf("%d\n",a>b);

    int zhangsan = 88;
    printf("%d\n",zhangsan>=80 && zhangsan < 90);
    return 0;
}


自加++,自减–

/*
* 自加++,自减--运算符
* int i = 5;
* ++i   i++
*/
int main()
{

    int i=5;
    int j;
    j = i++;
    printf("后加:i=%d,j=%d\n",i,j);//i=6 j=5
    j = ++i;
    printf("前加:i=%d,j=%d\n",i,j);//i=6 j=6

    printf(78>=60?"及格\n":"不及格\n");

    //逗号表达式,顺序求值运算符
    printf("%d\n",((20>30),(30<20),('a'>0)));

    return 0;
}


字节序

#include<stdio.h>
/*
 * 字节序 
 * 大端模式、小端模式
 * 大端模式:数据的高字节放在内存的低地址端,数据的低字节放在内存的高地址端
 * 小端模式:数据的高字节放在内存的高地址端,数据的低字节放在内存的低地址端
 *           常用的模式
 * 网络字节序:TCP/IP协议规定网络字节序是大端模式.
 *
 * 长的数据类型给短的数据类型赋值,截取长数据类型的低字节,不考虑符号
 * 短数据类型给长数据类型赋值,需要考虑有符号还是无符号
 *     若赋值对象是有符号数,则符号扩展
 *     若赋值对象是无符号数,则补0
 *
 * 扩展赋值运算符 += 
 */
int main(void)
{
    int i = 97;
    char c = i;
    printf("%c\n",c);
    printf("%lu\n",sizeof(c));

    i = 0x12348976;
    short s = i;//0x8976
    printf("%d\n",s);

/*  unsigned char c = -1;
    int i = c;
    printf("%x\n",i);
*/
    int i = 5;
//  i += 3;//i = i+(3);
    i *= 1+2;//i = i*1+2   i = i*(1+2)
    printf("%d\n",i);
    return 0;
}


检测数据类型占据字节数

//检测数据类型占据字节数

#include<stdio.h>
int main(void)
{
    printf("short int字节数为:%lu\n",sizeof(short int));
    printf("int字节数为:%lu\n",sizeof(int));
    printf("long int字节数为:%lu\n",sizeof(long int));
    printf("char字节数为:%lu\n",sizeof(char));
    printf("float字节数为:%lu\n",sizeof(float));
    printf("double字节数为:%lu\n",sizeof(double));
    printf("long double字节数为:%lu\n",sizeof(long double));
    return 0;

}


输入输出语句

// 输入输出语句
int main(void)
{
    int a,b;
    printf("请输入两个数");
    scanf("%d,%d",&a,&b);//scanf中不能出现\n换行符
    printf("输出内容:%d,%d\n",a,b);
    return 0;
}


printf输出函数

#include<stdio.h>//输入输出的函数如何使用。
/*
 * printf("format"[,输出表列]);
 * format: %格式说明  普通字符
 * 格式字符:d 整型,  f 单精度 ,lf 双精度 , c 字符,ld长整型  ,s 字符串
 *           h 短整型,x/X 16进制, o 8进制,u/U 无符号 e/E 科学计数
 *           %.2f限制输出小数位数
 */
int main(void)
{
//  int i = 123456;
//  printf("hello world%5daaa\n123456789012345\n",i);
    float f = 123.456f;
    printf("%-8.2f\n1234567890123456\n",f);
    return 0;
}


scanf输入函数

/*
 * scanf("format",地址表列)
 * 输入结束后,按回车键结束。
 * format : 格式字符  普通字符
 * scanf("%d %d",&i,&j);//12 32
 * scanf("%d%d",&i,&j);//12 32
 * 格式字符连续没有其他字符,按空格键,回车键,tab键
 * scanf("%d%c",&i,&j);//12a
 */

#include<stdio.h>

int main()
{
    int i;
    //scanf("%d",&i);
    scanf("请输入i值:%d",&i);
    printf("%d\n",i);
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: