-
变量:
定义:在程序运行过程中,会发生改变的量;
语法:数据类型 变量名称 = 值;
要求:先声明、后使用。 -
数据类型
基本数据类型:char short int long(long long) float double
所占内存:
char 字符 1字节
short 短整形 2字节
int 整形 4字节
long 长整型 8字节
long long 8字节
Float 4字节
double 8字节
区别:保存的数值范围不同
char < short < int < long <long long
unsigned int:无符号整形
#include <stdio.h>
int main()
{
unsigned int a = 10;
int b = -10;
if(a == b)
printf("a == b\n");
if(a < b)
printf("a < b\n");
if(a > b)
printf("a > b\n");
return 0;
}//运行一下这个程序,注意unsigned int 和int使用的一些细节
-
printf的格式化输出
%d int
%ld long
%lld long long
%c char
%f float
%lf double
%s char * or char[]
%p void* -
需要掌握的一些运算符:
sizeof(类型或变量) 能够获取数据变量或数据类型所占用的内存字节数,返回值是ssize_t实际 就是long类型。
通常和strlen()一起出选择题,需要注意两者区别。
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "hello\0world";
char str2[] = "hello world";
printf("sizeof(str1): %ld strlen(str1): %ld\n",sizeof(str1),strlen(str1));
printf("sizeof(str2): %ld strlen(str2): %ld\n",sizeof(str2),strlen(str2));
return 0;
}//运行这个程序,找出两者区别
- 字符在计算机中是怎样存储的?
计算机不是只认识二进制吗?怎么运行printf("%c\n",‘A’); 还是能打印出A?
没错,计算机只能识别数字,所以字符在计算机中是以ascii的形式存放的。
从上图中可以看出A的ascii是65,如果我直接写成printf("%c\n",65);可以打印出A吗?
答案是当然可以,因为计算机能够识别二进制。计算机和程序员之间又需要一个翻译官,
那就是ascii码表。你告诉计算机65,其实就是通过程序告诉显卡,你把65通过字符的形式