2.6字符型:char

2.6字符型:charchar 的本质就是一个 1 字节大小的整型 1 内存中没有字符 只有数字 2 一个数字 对应的一个字符 这种规则就是 ascii 3 使用字符或数字给字符变量赋值是等级 4 字符类型本质上就

大家好,欢迎来到IT知识分享网。

2.6.1字符变量的定义和输出  

char的本质就是一个1字节大小的整型
#include<stdio.h>
int main(int argc,char *argv[])
//1、内存中没有字符,只有数字
//2、一个数字,对应的一个字符,这种规则就是ascii
//3、使用字符或数字给字符变量赋值是等级
//4、字符类型本质上就是1个字节大小的整型

//此文中出现单引号是为了方便,不加不影响运行

//字符:‘一个字符’
char ch=’a’;
printf(“ch1 =%c, ch = %d\n”, ch, ch);
ch=97;//以ascii赋值,和ch=’a’等价的
printf(“ch2 =%c\n”,ch);
效果:2.6字符型:char
//小写字母比大写字母大32
char a = ‘A’;
char b = ‘a’
printf(“A = &d, a = %d\n”, a, b);
效果:2.6字符型:char
//小写转大写,小写字母-32
printf(“小写转大写: %c\n”, ‘a’ – 32);
2.6字符型:char
//大写转小写,大写字母+32
printf(“大写转小写: %c\n”, ‘A’  +32)
2.6字符型:char

2.6字符型:char
效果;2.6字符型:char

2.6.3 转义字符

//字符,原则上”,内部只有一个字符,转义字符除外
//char a=’abc’;//不合理

//转义字符,由反斜杠\组成的多个字符
  char ch=’\n’;//换行符
  printf(“ffff%c”, ch);
2.6字符型:char
ch=’\r’;   //光标切换到句首
printf(“abcddd%cefg\n“,ch);
2.6字符型:char
ch=’b’;//退格
printf(“12%c3456\n”, ch);
2.6字符型:char

2.6字符型:char

2.6.4 数值溢出

2.6字符型:char
2.7实型(浮点型):foat、double

·尽量不要使用,使用不准确
float存储不准确例子:
{

float a=100.9f;
printf(“%f\n”, a);
return 0;
}
float正确使用方法:
{

float a;
printf(“请输入float:”);
scanf(“%f”, &a);
printf(“%f\n”, a);
return 0;
}
double的使用方法:
{

double b;
b = 3.14;
printf(“b = %lf\n”, b);
return 0;
}

2.8 类型限定符

限定符                                                            含义
extern                         声明一个变量,sxtexm声明的变量没有建立存储空间。
const                           定义一个常量,常量的值不能修改。const int a= 10;
volatile                      防止编译器优化代码(加上这个,可以防止编译器跳过中间步骤)
register                     定义寄存器变量,提高效率。register是建议型的指令,而不是                                       命令型的指令,如果 CPU有空闲寄存器,那么register 就生                                           效, 如果没有空闲寄存器,  那么register 无效。                                                                             
2.9 字符串格式化输出和输入
2.9.1字符串常量
·定义:字符串是内存中一段连续的char空间,以‘\0′(数字0)结尾
2.6字符型:char
每个字符串的结尾,编译器会自动的添加一个结束标志位’\ 0’,即”a”包含两个字符’ a’ 和’\0’

2.9.2 prntf 函数和 putchar 函数

2.6字符型:char

1.输入:printf(“mike = %s\n”, “s”);
   输出:mike = s
2.输入:int a = 10;
             printf(“&a = %p\n”, &a);
   输出:&a = 0x7ffd6e216b14
//&+字符,用于查询字符的地址,且每次运行后地址都会改变
3.输入:printf(“% \n”);  //这样输出会有警告,虽然可以运行出%
//%+内容,才是表示输出内容(比如%d,%c)
   输入:printf(“%%d\n”);
   输出:%d
//%%在屏幕输出一个%,后面的d也会输出
4.输入:int a = 123
             printf(“a1 = %d\n”, a);
   输出:a1 = 123
输入:printf(“a2 = ‘%5d’\n”, a);
//%5d,以5个字符输出,没有的字符以空字符填充,默认是右对齐
输出:a2 = ‘  123’

输入:printf(“a3 = ‘%05d’\n”, a);
//%05d,以5个字符输出,没有的字符以0填充,默认是右对齐
输出:a3 = ‘00123’

输入:printf(“a4 = ‘%-5d’\n”, a);
//%-5d,以5个字符输出,没有的字符以空字符填充,-代表指定为左对齐
输出:a4 = ‘123  ‘
  
输入:printf(“a5 = ‘%-05d’\n”, a);
//0 和 – 不能同时使用 
输出:a5  = ‘123  ‘

输入:double b = 3.14;
printf(“b1 = %lf\v”, b);
//默认小数点后面6位,不够补0
输出;’b1 = 3.’

输入:printf(“b2 = ‘%8.3lf\n”, b);
//8.3,8代表总共有8个字符,3代表小数点后有3位,默认右对齐
输出:b2 = ‘   3.140’

putchar是将内容输出到屏幕
输入之前:edu@edu:-/share/c code/day05$
输入:char ch = ‘a’;
putcahr(ch);  //把ch的内容输出到屏幕
输出:aedu@edu:-/share/c code/day05$

实现换行:
输入char ch = ‘a’
       putchar(ch);  //不可以输入putchar(“ch\n”)来实现换行,因为对于()内的是变量
       //可以输入printf(”\n“)来实现换行
        putchar(‘\n’);

2.9.3 scanf函数与 getchar函数
scanf:

输入:int a;
           printf(“请输入a:”);
           scanf(“%d”, &a);
           printf(“a = %d\n”,a);
输出:请输入a:x
                     a = x
输入: int b;
            int c;
            printf(“请输入b,c:”)
            scanf(“%d %d”,&b,&c);
            printf(“b = %d, c = %d\n”,b,c);
输出: 请输入b, c:20 30   //此处输出时需要空一行
            b = 20 c = 30

输入:char a;
          printf(“请输入字符a:”);
          scanf(“%c”, &a);
          printf(“a = ‘%c’\n:, a);    //如果代码到这里,则会正常运行

          char b;
          printf(请输入字符b:);
          scanf(“%c”, &b);
          printf(“b = ‘%c’\n”, b);    //如果代码到这里,则会只有上一步的代码正常运行
效果:
2.6字符型:char

//知识点:此处当用户输入字符时,编译器默认把输入的内容先放在一块内存中(缓冲区),scanf()自动在缓冲区读完内容
2.6字符型:char
键盘输入的会进入缓冲区
scanf(“%c”,&a); 只读一个字符
1、第1次把t取走,留下\n还在缓冲区
2、第2次scanf,由于缓冲区还有内容所以直接取内容,无需输入(相当于第二次把\n这个指令,也就是换行给读取了)

接下来进行第三次输入:
char c;
printf(”请输入字符c:”);
scanf(“%c, &c”);
printf(“c = ‘%c ‘\n”, c);
输出:a = x
           b = y
           c = z
或者:把第二个命令的printf都给删去,为的是吃掉上一步的\n,不做处理
如下:
char b;
scanf(“%c”, &b );

getchar:

简单理解来说也是输入
a = getchar();  //读取键盘的字符,放在变量a(相当于scanf)
b = getchar;
c= getchar;

输入:char a ;
          printf(“请输入字符a:”);
          a = getcahr();
          printf(“c = ‘%c’\n, c”);
输出: a = x

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/158867.html

(0)
上一篇 2025-01-17 17:00
下一篇 2025-01-17 17:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信