网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
其中unsigned是无符号的意思,C语言中有些数据不可能是负数,没有必要用到最高位表示正负,故unsigned类型的数据,其最高位不再表示负号,而是跟后面的位一样代表大小。
存储地址的变量称为指针变量。
指针变量在内存中所分配的字节数一般与int类型变量相同,C语言中可以用运算符sizeof()求得某种类型或某项数据在内存中占用多少字节。
char c;
float x;
printf("%d,%d",sizeof(c),sizeof(char)); //输出1,1
printf("%d,%d",sizeof(float),sizeof(x)); //输出4,4
3.变量的定义
指针变量的定义和普通变量定义格式类似,区别是:指针变量名字前面要多写一个 *,例如:
char *p; //定义了一个指针变量p,用来存char型变量的地址
int *p1,*p2; //定义了两个指针变量p1,p2,都用来存int型变量的地址
float x,*p3,y,*p4; //定义了两个普通变量x,y和两个指针变量p3,p4
变量必须先定义,才能使用。
定义变量的目的:
一是给变量起个名字,以便在程序中分辨它;二是把变量的类型告诉计算机,以便让计算机给变量分配空间。因为有了类型,计算机才能知道该给变量分配多少字节,才能知道变量的值用什么方式存储。例如:若是字符变量则分配1字节,变量的值用ASCII(也叫ASCALL码);若是短整型变量则分配2字节,用补码存储…
4.变量的命名
不管是变量,还是今后要学到的数组,函数和结构体等,每一样东西都应该有一个名字作为标识,其名字即为标识符。
C语言对标识符有如下要求:
<1>标识符只能由英文字母,数字和下划线组成,但不能以数字开头。
<2>C语言是区分大小写的,即大小写被认为是两个不同的字符。因此name和Name是两个不同的标识符。
<3>不允许用关键字作为标识符。关键字是指已经赋予一定含义的字符序列,如int ,float,for ,if ,return 等
<4>标识符有长度限制,超过限制时,后面的字符不起作用。长度建议不要超过32个字符
5.变量的属性
每个变量都有值和地址两个属性。
变量的值指的是变量在内存中所存的内容。变量的地址指的是变量在内存中所处的位置,其起始地址称为变量的地址。
设有代码“short a=5;”,则程序运行时需要在内存中分配两个字节作为变量a的存储区域,并且将5存放进去。设系统给a分配的空间是内存中1027和1028两个单元,如图下,则变量的值是5,变量的地址是1027。
把内存的哪两个字节分配给变量是不可预知的,但变量分配在什么地方,系统是知道的。每当在内存中给一个变量分配了空间,系统都会把变量名和它的地址,类型等信息记录下来,以便将来找到它,存取它。
因此,在变量获取空间之后,其地址是可以被知道的,用取地址运算符&便可以获取变量的地址。
下面的程序可以输出整型变量a的两个属性
#include<stdio.h>
main()
{
int a=5;
printf("%d,%p\n", a, &a); //%p表示用十六进制数输出地址
return 0;
}
运行结果
试一试:把代码中的“=5“去掉,运行一遍程序,看a还有没有值。
6.变量的赋值和赋初值
给指针变量赋值
int a,*p; //在内存中给a和p分配空间
p=&a; //把a的地址存到p中,即给p赋值
赋初值
在给变量分配空间的时候就向其中存放数据,称为赋初值。例如:
int a=10;
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新