C入门闲谝~

谝些C的基础小点

1 注释

C注释风格
/* 注释内容(啥都能放)*/

可以将一坨代码注释,但是不能嵌套注释,嵌套了编译器不认识会蒙圈。

C++注释风格
 //注释内容(也啥都行)

可以嵌套使用,要注释的行数少时,用这个方便。

2 字符串

“ Hello World ! ”

这种用双引号括起来的内容就称为“字符串的字面值”;简称为字符串。
注意:字符串后隐含一个字符串结束标志 \0,但它只是一个标志,不是字符串内容,在调用strlen函数输出某字符串长度时是个坑。

#include <stdio.h>
#include <string.h>
int main {
	int len = "abcdef";
	printf("%d\n",strlen(len));
	return 0;
}
// 输出结果应为6,只数字符串长度,不数那个隐含标志\0

提到了字符串的输出问题,我们也得说说下面这个玩意。

三字母词

定义:就是几个字符的序列,合起来表示另外一个字符。
三字母词可以使C环境可以在某些缺少一些必备字符的字符集上使用。

常见的三字母词:

三字母词 表示字符
??( [
??) ]
??< {
??> }

存在三字母词之后,就使某些字符串输出的很不像话,
比如 " (Are you ok ??) " 这样的字符串。

为了解决这个问题,又引入了这玩意儿…

转义字符
转义字符 释义
\? 书写连续多个问号时使用,防止被解析成三字母词
\“ 表示一个字符串内部的双引号
\\ 表示一个反斜杠,防止被解释为一个转义序列列符
\a 警告字符,蜂鸣
\n 换行符,printf()语句中常用到
\r 表示回车
\ddd ddd表示1~3个八进制的数字
\xddd ddd表示1~3个十六进制的数字

看看这个题,

// 程序会输出什么?
#include <stdio.h>
int main()
{
	printf("%d\n", strlen("C:\Code\HSQ\16\test.c"));
	printf("%d\n", strlen("C:\Code\HSQ\18\test.c"));
	return 0;
}
// 输出结果为16,17
// 注意:前者\16这三个被解析为一个数字,而后者\18为解析为\1和8,因为8并不是一个八进制的数字。

3 数据类型

char	 	//字符型		1
short	 	//短整型		2
int 		//整形		4
long 		//长整型		8(64位)	4(32位)
long long 	  //更长的整形		8
float		 //单精度浮点数		4
double 		//双精度浮点数		8

我们常用到上述这些类型,那为什么出现这么多的类型呢?
因为:要使资源空间分配更合理啊啊啊!!

4 变量

char c = 'w';
short s = 1;
int num = 0;
long age = 18;
float weight = 45.5;
double salary = 1000000.00;

5 常量

字面常量
1,  3.14,  ‘w’,  '\n'
const修饰的常量

在C语言中,当const修饰一个标识符时,使这个标识符具有了常属性,但实质上还是一个变量,只是不能被直接改变。

const int num = 10;	//const修饰标识符num
num = 20;	//这样直接给num赋值就是错的,不允许的

但是在C++中,认为被const修饰的标识符就是常量。

define定义的常量
#define MAX 100  //define定义的标识符常量,函数中可直接调用
枚举常量

枚举关键字 enum
例如:性别、颜色、星期、季节
这样的有限个可能取值都可用枚举的方法

	enum Sex { 
		MALE,			//用逗号分隔枚举常量
		FEMALE,	
		SECRET		//默认第一个枚举量初始值为0,下面的递增1
	};
	enum Sex s = MALE;  

6 变量的命名规则

变量名称必须以字母或下划线 _ 开头,后面可以跟若干个字母、数字、下划线,但不能有其它字符。

另外,关键字也不允许作为标识符。

下面列出C语言中常见关键字:

auto  break  case  char  const  continue  
default  do  double  else  enum  extern
float  for  goto  if  int  long  register  
return  short  signed  sizeof  static  
struct  switch  typedef  union  unsigned  
void  volatile  while

注意: define 不是关键字

7 变量的分类

根据出现的位置划分为:

局部变量
变量出现在局部范围(代码块内部),称局部变量。

#include <stdio.h>
void test() {
	int num = 0;	//局部变量
}
int main() {
	int age = 18;	//局部变量
	return 0;
}

全局变量
变量出现在所有代码块之外,称全局变量。

#include <stdio.h>
int g_val = 2018;	//全局变量
int main() {
	printf("Hannah_h");
	return 0;
}

8 表达式属性

int x = 1;
int y = 2;
int sum = 0;
sum = x+y;
sum = x*y;
sum = (x+y)*10;
  • 值属性
    决定了计算的结果是多少。上面的代码 x+y ,产生的结果是3(值属性)。
  • 类型属性
    决定了表达式的值能否复制给其他变量量。上面代码中表达式 x+y ,产生结果的类型是int,所
    以可以赋值给sum这个整型变量。

猜你喜欢

转载自blog.csdn.net/Hannah_Hsq/article/details/83960495