本文目录一览:
C语言求详解
//找到它的流程和作用
#include stdio.h
int main()
{
int v1 = 0,v2 = 0;char ch;
//while()默认控制一个语句或一个结构块
while((ch = getchar()) != '#')
//一直获取输入,直到输入有'#'就跳出while
switch(ch)
{
//遇到'a'字符就从这里开始执行switch()
case 'a':
//遇到'h'字符就从这里开始执行switch()
case 'h':
//遇到其他字符就从这里开始执行switch()
default: v1++;
//遇到'0'字符就从这里开始执行,不跳出switch()
case '0':v2++;
//switch()执行结束
}
printf("%d,%d\n",v1,v2);
}
/*
china#
-c 非'#'执行default 然后执行case '0'跳出switch,执行while
-h 非'#'执行default 然后执行case '0'跳出switch,执行while
-i 非'#'执行default 然后执行case '0'跳出switch,执行while
-n 非'#'执行default 然后执行case '0'跳出switch,执行while
-a 非'#'执行default 然后执行case '0'跳出switch,执行while
-# '#'跳出循环
*/
C语言中的数据类型详解,它们的作用和如何用?
1.类型:
整形,可以理解为整数
字符型 可以理解为单个字符,如字符‘a','b','1'等
浮点型 可以理解为小数
2.型数据类型:
struct 可以理解为把不同的数据类型放在一起组成一个新的有意义:说到一说起人,你就会想到人具有身高,性别,年龄等属性,人就是由身高,性别,年龄等放在一起构造的数据类型
struct person{
double shenggao;
char [] xingbie;
int nianling;
};
3.class(类)
在struct的基础上加了对数据的操作,还有对数据访问权限的设置,还有对数据操作方法间得一些规定,设置,比如继承等
4.数据结构和算法
这个要一本书专门学习,有链表,树,图等
c语言指针详解
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。
为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。
C语言用变量来存储数据,用函数来定义一段可以重复使用的代码,它们最终都要放到内存中才能供 CPU 使用。数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存到底存储的是数据还是代码。
当程序被加载到内存后,操作系统会给不同的内存块指定不同的权限,拥有读取和执行权限的内存块就是代码,而拥有读取和写入权限(也可能只有读取权限)的内存块就是数据。
CPU 只能通过地址来取得内存中的代码和数据,程序在执行过程中会告知 CPU 要执行的代码以及要读写的数据的地址。
如果程序不小心出错,或者开发者有意为之,在 CPU 要写入数据时给它一个代码区域的地址,就会发生内存访问错误。这种内存访问错误会被硬件和操作系统拦截,强制程序崩溃,程序员没有挽救的机会。
变量名和函数名为我们提供了方便,让我们在编写代码的过程中可以使用易于阅读和理解的英文字符串,不用直接面对二进制地址,那场景简直让人崩溃。
需要注意的是,虽然变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符,但在编写代码的过程中,我们认为变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块或数据块的首地址。
扩展资料
指针使用(* 和 )
*a可以理解为*(a),a表示取变量 a 的地址(等价于 pa),*(a)表示取这个地址上的数据(等价于 *pa),绕来绕去,又回到了原点,*a仍然等价于 a。
*pa可以理解为(*pa),*pa表示取得 pa 指向的数据(等价于 a),(*pa)表示数据的地址(等价于 a),所以*pa等价于 pa。
对星号*的总结
在我们目前所学到的语法中,星号*主要有三种用途:
1、表示乘法,例如int a = 3, b = 5, c; c = a * b;,这是最容易理解的。
2、表示定义一个指针变量,以和普通变量区分开,例如int a = 100; int *p = a;。
3、表示获取指针指向的数据,是一种间接操作,例如int a, b, *p = a; *p = 100; b = *p;。