C语言学习笔记整理1

以打印Hello World为例,介绍以下知识点

1、无论看什么程序,首先要去找到main函数;

main函数是程序执行的入口

2、#include<stdio.h>和#include"stdio.h"的区别

#include<stdio.h>告诉编译器到系统的目录下面去查找头文件;

#include"stdio.h"告诉编译器先到当前目录下去查找头文件,如果没有找到,则到系统的目录下面去查找,如果在系统的目录下面没有找到,则报警。

3、return关键字

4、语句的后面别忘了分号;

5、{}中间的内容是函数的代码块;

用变量a给出下面的定义:

1 一个整型数

int a;

2 一个指向整型数的指针

int *a;

3 一个指向指针的指针,它指向的指针是指向一个整型数

int **a;

4 一个有10个整型数的数组

int a[10];

5 一个有10个指针的数组,该指针是指向一个整型数的

int *a[10];

6 一个指向有10个整型数的指针

int (*a)[10];

7 一个指向函数的指针,该函数有整型参数并返回一个整型值

int (*a)(int);

8 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参量并返回一个整型数

int (*a[10])(int);

左右法则:

首先找到标识符(a)开始阅读,先往右看,每当遇到小括号的时候,调转方向,再往左看!一旦解析完圆括号里面所有的东西,就跳出圆括号,重复上面的动作,直到整个定义解析完毕。

变量的作用域:

局部变量和全局变量:

局部变量的作用范围:就是它的代码块,也就是靠近它最近的{}的范围之内。

全局变量的作用范围:整个的.c文件

int a = 0;

解释:编译器看到int a = 0;的时候,就会在内存空间里面分配一块空间,这块空间的名字就叫a,然后这个空间有多大呢?就是一个 int 字节大小用来保存整型数据。a  = 0 就表明这块内存内存空间分配好了之后,就把0这数值存储到这块区域里面!

char a的数据范围:1111 1111

最大肯定是 正的   ==》最高位,也就是bit7位肯定是0; ==》0111 1111 = 127

最小肯定是负的   ===》最高位,也就是bit7位肯定是1;==》1111 1111 = -127

为什么有-128?

0000 0000 = +0

1000 0000 = -0

直接把-0变为-128

short b;      ==》数值范围 -32768 ~ 32767

数据在计算机中保存都是以补码的形式保存的。

unsigned char a = -1;

printf("a = %d\n", a);的值是255的原因。

1 首先-1的补码:取绝对值为1  ==》0000 0001==》1111 1110  ==》  1111 1111  

    ==》-1的补码1111 1111保存到计算机中

2 给a定的数据类型是unsigned类型,所以最高位不是符号位(不表示正数或负数),是可以参与最后数值范围计算的。

此时,a 空间存放的是1111 1111,然后打印出来的时候,因为 a 这块空间存储值的类型是unsigned char 所以会默认你是正数,按照正数的补码规则转化为原码。

sizeof 的用法注意点:

sizeof 变量;             //对

sizeof (变量名);  //对

sizeof 数据类型;      //错

sizeof(数据类型);//对

猜你喜欢

转载自blog.csdn.net/csdn_jking/article/details/81169317