基本数据类型 指针类型 空类型void 构造类型 定义类型typedef
基本数据类型
1)整型
int 4 short long
2) 实数型
float 4
double 8
3)字符型
常量 4
变量 1
变量:
代表的时一块存储区域,通过变量名可以取得变量的值
内存:
由若干个1个字节大小的单元组成的,每个单元有唯一的一个地址,可以存放数据
内存的特点:
掉电 数据就丢失了
变量存放在 内存中,不同类型的变量占用的空间是不一样的。
1、变量的地址
变量在内存中存放数据的第一个字节的地址,就是变量的地址
变量的首地址
1)如何获取变量的地址
int num;
scanf("%d",&num); // & 获取变量的地址
2)打印变量的地址
%p 格式控制符
可以输出一个地址
printf("&num = %p",&num);
2、变量在内存中如何进行存储的
1)先定义的变量分配的时高地址
2)后定义的变量分配的是低地址
3)当定义多个变量的时候,多个变量的地址可以不连续
但是某一个变量内部的地址一定是连续的
4)一个变量的内存存放细节
高 低位
00000000 00000000 00000000 00001010
低位存放在地地址字节
高位存放在高地址字节
变量的首地址就是 变量低位存放的地址(低地址)
00000000 00000000 00000001 00001010 = 266
#include <stdio.h>
void test(){
int num;
//&num 获取变量num的地址,获取num的首地址
scanf("%d",&num);
printf("num = %d,&num = %p\n",num,&num);
}
int main(int argc, const char * argv[]) {
int a=266;
int b = 261;
char ch='a';
printf("a的地址 = %p\n",&a);
printf("b的地址 = %p\n",&b);
printf("c的地址 = %p\n",&ch);
char *p = &b;
printf("第一个字节:%d\n",*p);
printf("第二个字节:%d\n",*(p+1));
printf("第三个字节:%d\n",*(p+2));
printf("第四个字节:%d\n",*(p+3));
return 0;
}
|
|