c语言用sizeof求字节数中sizeof和scanf可用于变量名么?

一、数据类型简介在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。类型转换:类型存储大小值范围char1 字节-128 到 127 或 0 到 255unsigned char1 字节0 到 255signed char1 字节-128 到 127int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295short2 字节-32,768 到 32,767unsigned short2 字节0 到 65,535long4 字节-2,147,483,648 到 2,147,483,647unsigned long4 字节0 到 4,294,967,2951.2、获得数据类型的长度#include "stdio.h"void main(){//sizeof用于获得数字类型的长度//sizeof是一个关键字(32个)printf("char占用字节数:%d \n",sizeof(char));printf("short占用字节数:%d \n",sizeof(short));printf("int占用字节数:%d \n",sizeof(int));printf("long占用字节数:%d \n",sizeof(long));printf("float占用字节数:%d \n",sizeof(float));printf("double占用字节数:%d \n",sizeof(double));}二、变量定义是用数据类型在内存中开辟的空间。一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。它在内存中占据一定的存储单元。变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。变量:在程序运行过程中可以变化的量。常量:在程序运行过程中不可以变化的量。#include "stdio.h"void main(){int i=100;i++; //i=i+1printf("i=%d \n",i); //101i--; //i=i-1printf("i=%d \n",i); //100i+=100; //i=i+100printf("i=%d \n",i); //200i/=3; //i=200/3=66.666667=66printf("i=%d \n",i); //66i+7; //在内存中66+7完成运算,但值没有写回printf("i=%d \n",i); //66}2.1、变量名的取名规则第一个字符只能是字母或下划线( _ );第一个字符的后而只能跟字母、数字和下划线( _ );关键字(写上去会变色的那些单词)不能用作变量名;区分大小写;第一位(a-zA-Z_)后续(a-zA-Z_0-9)请问下面那些是非法的,为什么?1name_product_9527Doubleint_producT_producttotal2.2、变量定义的多种形式/* Note:Your choice is C IDE */#include "stdio.h"void main(){//定义变量并赋值int i=100;//先定义再赋值float j;//j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分//同时定义多个变量char a,b,c;//同时定义多个变量并赋值double x=1.5,y=1.6,z;j=99.5f;z=x+y;}三、整型(int)#include "stdio.h"void main(){int i;i++; //i=i+1printf("i=%d \n",i); //101i--; //i=i-1printf("i=%d \n",i); //100i+=100; //i=i+100printf("i=%d \n",i); //200i/=3; //i=200/3=66.666667=66printf("i=%d \n",i); //66i+7; //在内存中66+7完成运算,但值没有写回printf("i=%d \n",i); //66}四、字符型(char)五、单精度浮点型(float)六、双精度浮点型(double)七、输入scanf#include "stdio.h"void main(){//判断年龄如果小于18岁则提示年轻真好,否则输出年龄//定义变量int age;//用户输入年龄printf("请输入年龄:");//从键盘输入,&表示取变量地址scanf("%d",&age);//条件判断if(age<18){ //如果条件成立printf("年轻真好");}else{ //如果条件不成立//输出printf("您的年龄是:%d",age);}}scanf("格式控制",地址列表);“格式控制”的含义同printf函数;“地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址%f 单精度%lf 双精度%c 从键盘接收一个字符%d从键盘接收十进制整数%s从键盘接收一个字符串,遇空格、制表符或换行符表示接收完毕。%[]从键盘接收一包含在括号内的字符,只要遇到有一个不在其内的字符,便表示接收完毕。输入时如果遇到 空格 回车 Tab则表示结束7.1、输入时指定分隔符#include "stdio.h"void main(){int a,b,c;printf("请输入年-月-日:");scanf("%d-%d-%d",&a,&b,&c);printf("%d年%d月%d日",a,b,c);}7.2、清除缓冲#include "stdio.h"void main(){char x,y,z;printf("输入:");scanf("%c",&x);printf("输入:");scanf("%c",&y);printf("输入:");scanf("%c",&z);printf("%c,%c,%c",x,y,z);}#include "stdio.h"void main(){char x,y,z;printf("输入:");scanf("%c",&x);fflush(stdin); //清除缓冲printf("输入:");scanf("%c",&y);fflush(stdin); //清除缓冲printf("输入:");scanf("%c",&z);fflush(stdin); //清除缓冲printf("%c,%c,%c",x,y,z);}7.3、输入字符串#include "stdio.h"void main(){char a[100]; //数组,char只能是单个字符scanf("%s",a); //不要取地址printf("%s",a);}7.4、限定输入范围#include "stdio.h"void main(){//限定输入范围char a[100];scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束printf("%s",a);}7.5、限定输入范围取反#include "stdio.h"void main(){char a[100];scanf("%[^a]s",a); //^取反,如果是a则表示结束//scanf("%[^\n]s",a); //如果是换行则结束,其它字符都可以printf("%s",a);}练习:#include "stdio.h"void main(){int nianling; //年龄float fenshu; //分数char aihao[30]; //爱好printf("请输入年龄:");scanf("%d",&nianling);printf("请输入分数:");scanf("%f",&fenshu);printf("请输入爱好:");scanf("%s",aihao);printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao);}

我要回帖

更多关于 c语言用sizeof求字节数 的文章