C语言基础知识整理1

1.局部变量优先

局部变量和全局变量名字相同,局部变量优先


#include
int num = 10;

int main()
{
	int num=1;
	printf("num = %d\n",num);
	return 0;
}

程序输出结果为1

如果两变量名字不相同,则它们在各自的作用域内独立存在,互不干扰

2.C语言内置-布尔类型

C99标准中引入了布尔(bool)类型,需包含头文件#include
用来表示真假
使用bool 类型时,用 true 和 false 来表示布尔值
代码实例
判断100~200之间的素数:

#include
#include
#include
bool is_prime(int  n)
{
    int j = 0;
    for(j = 2;j <=sqrt(n);j++)
    {
       if(n % j == 0)
       {
          return false;
       }
     }
     return true;
}     
int main()
{
   int i = 0;
   for(i = 100;i <=200;i++)
   {
    if(is_prime(i))
    {
      printf("%d ",i);
    }
   }
     return 0;
 }          

3. 初识单目操作符sizeof,++,--

3.1:sizeof
用于计算数据类型或变量的字节数
例 1:int a=10
sizeof(a) 计算a所占空间大小,a是整型变量,所以结果为4
sizeof(a) 也可以换成sizeof(int)
例 2: int arr[10]={0};
sizeof(arr),计算的是整个数组的大小,数组有10个元素,结果为40
sizeof(arr[0]),计算一个整型元素的大小
可以用sizeof(arr)/sizeof(arr[0])计算数组的元素个数
3.2:++ - -
后置++,先使用,后++
例如:int a=10;int b=a++;
即输出 b=a,a=a+1
前置++,先++,后使用
例如:int a=10;int b=++a;
即输出 a=a+1,b=a;
操作符- - 同上。

4.数组初始化和求字符串长度问题

数组初始化可以不指定数组大小,大小根据初始化内容确定

#include
#include
int main()
{
	char arr[]={'a','b','c'};
	printf("%d\n",strlen(arr));
	return 0;
 } 

输出结果为:随机值
因为arr数组未以空字符’\0’结尾,strlen函数通过查找’\0’计算长度;
输出结果为3的方法:
1.初始化时添加’\0’,char arr[]={‘a’,‘b’,‘c’,‘\0’},此时输出为3
2.指定数组大小,如arr[4]或arr[7],这时数组中第四个元素默认初始化为空字符’\0’
3.使用字符串字面量初始化,char arr[]=“abc”; 字符串字面量隐含’\0’,等价于{‘a’,‘b’,‘c’,‘\0’}

5.sizeof 和 strlen函数的区别

sizeof
是一个操作符
是用来计算变量所占内存空间的大小,单位是字节
而且不关注内存中存放的具体内容
strlen
是一个库函数,是专门求字符串长度的,只能针对字符串,
从参数给定的地址向后一直找 \0 ,统计 \0 之前出现的字符的个数

代码实例

#include
#include
int main()
{
	char str[] = "hello bit";
	//[h e l l o _ b i t \0] 共十个char类型元素,占10个字节
	printf("%d %d\n",sizeof(str),strlen(str));
	//'\0'之前共9个字符(包括空格)
	return 0;
}

输出

6.输出9*9乘法口诀表

在屏幕上输出9*9乘法口诀表
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
....

代码

//输出乘法口诀表
#include
int main()
{
	int i = 0;
	//打印9行
	for(i = 1;i<=9;i++)
	{
		int j = 0;//打印一行 
		for(j = 1;j<=i;j++)
		    printf("%d*%d=%d ",i,j,i * j);
		    printf("\n");//换行 
	 } 
	 return 0;
 } 

你可能感兴趣的:(C语言基础知识整理1)