C语言学习个人笔记

C语言学习个人笔记

关于字节,字,位部分知识,搞明白为什么相关数据类型的取值范围在那个位置??

关于变量的问题:在C语言中变量的使用必须先定义(这其中包含了数据类型和变量名字,这一点和部分其他的编程语言有所不同)

注:变量在内存中的存储类型有动态存储类型和静态存储类型。分别用关键字autostatic进行说明,如果变量定义的时候未说明autostatic则默认是auto

l C语言是一门对大小写比较敏感的编程语言,这个区别于html语言

常量:

① c语言中,常量是不需要提前定义数据类型的,在编译的时候系统会自动根据其书写方式确定数据类型,并为其分配相应字节的空间大小进行存储;

② 在习惯上符号常量的标识符都用大写字母表示,变量的标识符经常用小写字母代替,用来表示区别;

③ 使用符号常量可以在一定程度上避免文字常量在输入时候的错误,并且更加的方便代码的维护;

字符:

① C语言中字符常量必须用单引号括起来,不能用双引号或者其他的符号;

② 在单引号的里面只能是单个的字符,转义字符除外(这个要怎么解释,一般是怎么应用的?)

③ 注:转义字符经常用来表示在程序中无法用键盘输入的控制代码,或者在程序中另有含义的特殊字符;

④ 每一个字符都有相对应的ASC码与之相对应,这两者是等价的。举个例子:‘1’在ASC中对应的数字就是十进制的49,那么字符‘1’在参与运算时就是代表49在参与运算;

格式控制字符:

基本上在输出格式上面会有一些控制

类型转换:

类型转换的方法有两种:

① 自动转换

自动转换一般发生在不同的数据类型进行混合运算的时候,数据的宽度会从小变大。

② 强制类型转换

强制类型转换一般是通过类型转换运算来实现的,七一班格式为

类型说明符)表达式      int(x+y)

程序控制结构:

三种控制结构:

① 顺序结构

自上而下,依次执行;

② 选择结构

根据某种条件是否成立,从而执行相应的语句;

③ 循环结构

根据条件(循环条件),决定是否重复执行一些语句(循环体)

思考:

输入一个数,如何判断它是奇数还是偶数,能不能用代码实现

int main()

{

    int a;

    printf("请输入一个数:");

    scanf("%d",&a);

    if(a %2 ==0){

        printf("您所输入的数为偶数!");

    }else{

        printf("您所输入的数为奇数!");

    }

}

switch结构编写程序,输入10个学生的C语言成绩,统计各等级的人数。

判断输入的正整数n(n>1)是否为素数

(质数又称为素数。指在一个大于1的自然数中除了1和此整数以外,没有办法被其他的自然数整除的数。换句话来说,只有两个正因数(1和他本身)的自然数即为素数,比1大但不是素数的数称为合数。)

void main()

{

    int n,i;

    printf("请输入一个数:");

    scanf("%d",&n);

    for(i = 2;i < n-1;i++)

        if(n % i == 0)

            break;

        if(i == n)

            printf("%d就是素数。\n",n);

        else

            printf("%d不是素数。\n",n);

}

注:for循环后面为什么不能加括号

数组:

三种数组初始化的方式:

① 在定义数组时对全部元素赋以初值,例如:int a[10] ={0,1,2.3.4.5.6.7.8.9}

② 可以只给一部分元素赋值,例如:int a[10]={0,1,2,3,4}其他的元素均为0

③ 在对全部数组元素赋初值的时候可以省略数组长度

数组作为参数:

数组可以作为函数的参数,进行数据传送。数组作函数参数有两种形式:

一种是把数组元素作为实参使用;另外一种是把数组名作为函数参数和实参使用。

(这中间有什么区别)

字符串

字符串的存储

① 字符串存储在一维字符数组中

② 字符串有有效字符和字符串结束符’\0’组成

注意:a”代表两个字符‘a’‘\0;

字符串初始化

① 按照元素赋初值

Static char s[6] = {‘H’,’A’,’P’,’P’,’Y’}

② 用字符串常量给字符数组初始化

Static char s[6] = “happy”;

字符串的赋值

字符串不能整体赋值,只能使用字符串复制函数

字符串不能整体比较大小,要比较字符串的大小只能借助函数strcmp();

还有求字符串的长度的函数strlen();

 

二维数组

① 二维数组的元素在内存中按行优先的方式存放,先存第0行然后在存放第一行以此类推,前面定义的每一行元素再按照列的形式存放;

② 二维数组中,其数组名就代表数组首元素的地址,即a=&a[0][0],a[i]表示二维数组在第i行首元素的地址;即a[i] = &a[i][0];

③ 二维数组不能省略列长度,只能省略行长度,但是建议一般不要省略。

函数

一般自己写的函数要在主函数main()中声明的,这样才能调用

指针

指针就是内容的地址

指针与变量类型

目前常用的系统中short型变量占2个字节,int型变量占4个字节,double8个字节,char占一个字节。

指针是指向变量所占用内存的第一个字节的地址,即变量的首地址。所以定义指针为指向特定类型的变量,而不能将不同类型的变量的地址赋值给同一指针。

指针所指向的值的变化会导致实际参数的值发生改变。

指针与数组

数组下标表示法与数组指针表示爱法之间是等价的,在使用时可以使用它们之间的任何一种

 

指针变量可以通过算术运算符改变其值,但是数组名就是指针常量,不能通过算术运算改变其值;

优先级相同:自右向左运算么??

结构体

结构体类型只是用户自己定义的一种数据类型,它同前面所介绍的简单数据类型一样,它本身是不需要占用内存单元的,只有用它来定义某个变量时,才会为该变量分配结构体类型所需要大小的内存单元

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值