c新的笔记(1)


课本

第一个程序(c程序结构)

c程序结构:预处理指令,函数, 变量, 语句/表达式 ,注释

#include <stdio.h>
int main()
{
    printf("Hello, World! \n");
    return 0;
}
1.
<> 表示系统自带的库
也可以写成" " 表示用户自定义的库
如果写成" "并且自定义的库里面没有这个文件,系统会自动查找自带的库,如果还是没有则报错
2.stdio.h表示一个头文件(即标准输入输出头文件)
3.#include 是一个预处理命令,用来引入头文件,告诉预处理器将指定头文件的内容插入到预处理器命令的相应位
4.main()主函数 表示程序的入口  一个程序有且只能有一个main函数的存在

main(int argc, char *argv[]) 存疑???(D)

基本语法

多行注释方法

/* */ 这种格式的注释可以单行或多行。

不能在注释内嵌套注释(嵌套使用时只有内层有效),注释也不能出现在字符串或字符值中。

但注释若出现在引号内,则仍认为是字符串

五个令牌 :关键字、标识符、常量、字符串值,或者是一个符号(以分号为例)

标识符:就是程序员自己起的名字,除了变量名,还包括函数名、宏名、结构体名等

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

标识符区分字母大小写,且标识符中不能出现标点字符

对标识符要做到见名知意

关键字:C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

数据类型

数据类型决定数据的种类,不同种类的数据对应着不同的用法
包括:基本类型;枚举类型;void类型;派生类型
基本类型:整数类型和浮点型

  • 内存中,一个字节对应8个二进位
  • 电脑系统的位数(32或64)即为二进位的位数
  • char表示字符,其实仍为整数型;由此想到数据结构中定义顺序型串的结构时,字符串数组的最大长度char[0]='255’的理解
  • 用sizeof(类型名) 运算符可以求相应类型占用的字节数

浮点类型
在这里插入图片描述

  • 精度表示的是小数点后的有效数字的位数,即相当于保留几位有效数字
  • 1.2E-38或1.2e-38表示1.2乘以10的(-38)次幂
  • 浮点型常量表示用一般十进制或者指数型十进制都是合法的
  • 浮点型数据的范围为是如何求的?(D)
  • 浮点型不能包括所有的小数?未在范围内的小数的表示?(D)

浮点型与整数型的转换:
自动转换:若一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型
转换规则:
1、浮点数赋给整型,该浮点数小数被舍去;
2、整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;
强制转换:(类型说明符)(表达式),示例:

 b=(int)(x+y);

void类型:可表示函数的参数,函数的返回或者指针的指向为空
枚举类型:在定义时只能赋予离散整型数值
派生类型:数组类型,结构类型,函数类型,共用体类型,指针类型

变量

变量就是程序可操作的存储区的名称(仔细理解这句话),类型决定变量存储
基本变量类型:(其他类型也有相应类型的变量类型)
在这里插入图片描述
变量的定义与声明:

extern int a;//只声明,不定义
int a;//既是声明又是定义
  • 声明不建立空间,定义建立空间
  • 在变量定义时可以直接初始化
  • 一个程序中,一个变量的声明可以有多次,但定义只有一次
  • 静态持续变量指全局变量或声明为static的变量??(D)
  • 全局变量和局部变量在内存中的区别??(D)

左值与右值:
左值:指向内存位置,可以在赋值号两侧
右值:表示内存位置的具体数值,只能在复制号右侧

int a,b;
a=b=3;
a=(b=3);
//两条语句都会返回a=3
//若a时bool型,则会返回a=1;说明()的返回结果会根据左值的类型做出相应的改变

1.6号之前的(中间懒了几天没学)

1.7
感觉之前学的太慢太细了,决定学快些,不深究太多(着眼于更实用的东西)

常量

常量的几种类别:整数常量,浮点常量,字符常量,字符串常量
转义序列中一些序列的功能有待进一步研究(D)
定义常量:
#define 预处理器定义(注意边缘效应)
const关键字定义(必须在一条语句内完成对常量的定义)

const int var=5;//分开写则不对

存储类

存储类定义 C 程序中变量/函数的范围和生命周期(仔细理解这一句话)
生命周期有待进一步理解(D)
auto是局部变量默认的存储类

//在一个函数中,该两种定义方式是一样的
{
	int var;
	auto int var;
}

register存储类用于定义在寄存器中的局部变量(即其没有内存位置)
寄存器有待进一步理解(D)

static是全局变量默认的存储类,表示使用范围在该文件中;当用来定义局部变量时,可使该变量在函数被调用时不会再被创建或销毁,即该局部变量只会被初始化一次

extern提供对于全局变量的引用(即声明),使其在定义后可用于多个不同文件中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值