1.变量定义的语法格式: 切记:什么为定义?答:定义就是分配内存 什么为初始化?答:就是给变量对应的内存空间放一个数字 语法: 数据类型 变量名 = 初始值; 注意:目前掌握一个数据类型:int(整型数:0,1,2,3…),表示分配4字节内存空间 此种数据类型的占位符:%d
例如:printf("%d\n", 变量名);
2.定义变量的形式:
形式1:只定义不初始化 int var; 语义:定义变量var,本质就是让操作系统给你分配一块内存空间来存储数字 并且这块内存空间叫var名称,将来访问var名称就是在访问内存空间 并且这块内存空间的大小连续4字节,并且这4个字节的内存空间 的数字将来可以随时改变 注意:此时这块内存空间存储的是一个随机乱七八糟的数字 形式2:定义的同时并且初始化 int var = 250; //分配4字节内存空间并且同时往里面放一个250数字 形式3:定义之后再初始化 int var; var = 250; 形式3:连续只定义多个变量 int var1, var2, var3; //定义三个变量var1,var2,var3 形式4:连续定义并且初始化 int var1 = 250, var2 = 251, var3 = 252; 形式5:连续定义多个变量之后再初始化 int var1, var2, var3; var1 = 250; var2 = 251; var3 = 252;
#include <stdio.h>
int main(void)
{
int var1;
printf("var1的值是%d\n", var1);
int var2 = 250;
printf("var2的值是%d\n", var2);
int var3 = 251, var4 = 252;
printf("var3的值是%d," "var4的值是%d\n", var3, var4);
int var5, var6;
var5 = 253;
var6 = 254;
printf("var5=%d, var6=%d\n", var5, var6);
return 0;
}
3.问:变量名是否可以随意起名? 答:变量名(var)和函数名(printf)在C语言中统称标识符(用来区分,标识的符号) 标识符的名称规则: 3.1.不能以数字开头,第一个字符只能以字母和下划线开头,后面可以有数字 例如:int 2var; //错误 int var2; //可以 3.2.标识符不能用关键字(有特殊功能含义的单词) 目前掌握的关键字如下:include, int, void, main, return 例如:int int; //错误 3.3.要区分大小写 例如:int var 不等于 int Var; 3.4.采用驼峰或者下划线命名 驼峰:int nAge; int CreateWindows 基本采用下划线命名:int create_windows; 4.变量的数据类型 4.1.数据类型的作用:让编译器gcc预算变量将来要分配的内存大小 不同的数据类型将来分配的内存大小不一样 4.2.C语言的基本数据类型:
4.3.有符号和无符号之分 1)每种数据类型都有有符号和无符号之分 2)有符号数据有正负之分,可以用signed关键字来修饰,也可以不用写 例如:
int var = 250;
等价于
signed int var = 250;
3)无符号数据只有0和正数,必须用unsigned关键字修饰
unsigned int var = 250;
4.4.切记:unsigned int和unsigned long 对于32位/64操作系统,unsigned int分配的内存就是4字节 对于32位操作系统,unsigned long分配的内存就是4字节 对于64位操作系统,unsigned long分配的内存就是8字节 结论:如果将来用一个变量来保存内存的某个地址,一定要用unsigned long
4.5.基本数据类型详解之char(字符) 常量:其值不可改变,例如:250 1)字符常量用单引号’‘括起来,例如:‘A’,‘a’ 区分大小写 2)本质:字符类型的变量对应的内存本质上存储的就是一个整数(数字)而已 这个数字有对应的专业术语叫ascii码 说明:字符和整数之间可以互转 例如: 字符 整数 ‘A’ 65 ‘B’ 66 ‘a’ 97 ‘b’ 98 … … 所以:‘d’-‘a’ = 本质就是 100-97=3 3)字符类型变量的占位符:%c,%d 例如: char c = ‘A’; //表面看定义字符变量c并且初始化为字符常量’A’ //看清本质:就是分配1字节内存空间,并且往这个内存空间放了一个数字65 printf("c = %c\n", c); //打印输出按字符格式输出,c=‘A’ printf("c = %d\n", c); //打印输出按照整数格式输出,c=65
4)转义字符(特殊字符) ‘\n’:换行符,将光标移动到下一行的行首 ‘\r’:回车符,将光标移动到当前行的行首 ‘\t’:TAB键 ‘\’:输出一个 ‘’’:输出一个’ ‘"’:输出一个" ‘%%’:输出一个% 例如:利用printf要求向屏幕上输出这些信息: abc (TAB键)cbd’efg’“hjk”% 答案:printf("abc\n\tcbd\\\'efg\'\\\"hjk\"\\%%\n");
#include <stdio.h>
int main(void)
{
char c1 = 'A';
printf("c1=%c\n", c1);
printf("c1=%d\n", c1);
char c2 = 'd';
char c3 = 'a';
printf("c3-c2=%d\n", c3-c2);
char c4 = 65;
printf("c4=%c\n", c4);
char c5 = 'c';
char c6 = 'e';
int var = c6 - c5;
printf("var = %d\n", var);
printf("abc\n\tcbd\\\'efg\'\\\"hjk\"\\%%\n");
return 0;
}
4.6.基本数据类型详解之整型数据类型(int) 1)int特点: int代表2字节或者4字节整数 可以用short或者long进行修饰,最终得到6大形势,也就是上面表格的内容 2)int的六种形式: 1.short (int)用2字节表示,有符号 例如:
short int a = 250;
等价于
short a = 250;
2.unsigned short (int)用2字节表示,无符号 例如:
unsigned short int a = 250;
等价于
unsigned short a = 250;
3.long (int)用4字节表示,有符号 例如:
long int a = 250;
等价于
long a = 250;
4.unsigned long (int)用4字节表示,无符号 例如:unsigned long int a = 250; 等价于unsigned long a = 250; 5.int用4字节表示,有符号 例如:int a = 250; 6.unsigned int用4字节表示,无符号 例如:unsigned int a = 250;
4.7.整型常数 100:gcc编译器默认当成int类型 100L:gcc编译器当成long类型 100LL:gcc编译器当成long long类型 100u:gcc编译器当成unsigned int类型 100UL:gcc编译器当成unsigned long类型(最爱) 用途:用于后期课程的数据类型的转换用
4.8.基本数据类型详解之浮点数类型 float/double 例如: 1.23:gcc编译器默认当double类型,8字节 1.23f:gcc编译器当float类型,4字节 注意:浮点数在计算机中都是近似值 例如:1.23实际是1.2300001
4.9.数据类型和占位符之间的故事 数据类型 占位符 char %c(字符显示)和%hhd(整型数显示) unsigned char %c(字符显示)和%hhd(整型数显示) short %hd unsigned short %hu int %d unsinged int %u long %ld unsigned long %lu float %f或者%g double %lf或者%lg %f,%lf和%g,%lg区别在于前者会保留后面多余的0,后者不会保留
5.掌握sizeof关键字 1)作用:计算一个变量或者一种数据类型所占用的内存空间大小,会给你一个大小结果 单位是字节 2)格式:sizeof(变量名或者数据类型名),返回字节数 例如:int a = 250; printf("sizeof(a)的大小是%d\n", sizeof(a)); printf("sizeof(a)的大小是%d\n", sizeof(int)); 3)切记:sizeof关键字后面的小括号里对任何存储区内容的修改都是无效的
#include <stdio.h>
int main(void)
{
int var = 250;
printf("sizeof(var)大小是%d\n", sizeof(var));
printf("sizeof(int)大小是%d\n", sizeof(int));
printf("sizeof(3+2)大小是%d\n", sizeof(3+2));
printf("sizeof(char)大小是%d\n", sizeof(char));
printf("sizeof(unsigned char)大小是%d\n", sizeof(unsigned char));
sizeof(var = 500);
printf("var的值是%d\n", var);
return 0;
}
|