首页 > 其他分享 >一些c语言题和数组指针

一些c语言题和数组指针

时间:2023-02-08 19:46:54浏览次数:47  
标签:case dates 语言 mask break 数组 printf 指针

自学C语言

第一题:念数字

重点的几个步骤:

  1. 如何分离一个数
int mask=1;
	int t=a;//为了不改变a的大小,因为a还要参与后续的运算
	while(t>9){
		t/=10;
		mask*=10;
    }//可以算出a是几位数
 do{
       int d=a/mask;
     switch(d){
             ...
             
     }
		a%=mask;
		mask/=10;
 }while(mask>0);
  1. 分离过后念出数字的拼音(要用Switch-case)
switch(d){
			case 0:printf("ling");break;
			case 1:printf("yi"); break;
			case 2:printf("er"); break;
			case 3:printf("san"); break;
			case 4:printf("si"); break;
			case 5:printf("wu"); break;
			case 6:printf("liu"); break;
			case 7:printf("qi"); break;
			case 8:printf("ba"); break;
			case 9:printf("jiu"); break;
		}if(mask>9){
			printf(" ");
		}//每输出一个数都要加一个空格,直到输出最后一个数

第二题:使用指针交换函数

由于返回函数只能返回一个值

  1. 要使用&把地址发送给函数
exchange(&x,&y);
  1. 实现X,Y值的交换

    t=*u; 表示把x的值存储在t中.

    记住,u的值是&x,所以u指向x,这意味着用*u即可表示x的值

void exchange(int *u,int *v)
{
	int t;
	t=*u;//t获得u所指向对象的值
	*u=*v;//相当于x=y;
	*v=t;	
} 

指针和数组

  1. 在指针前使用*运算符可以得到该指针所指向对象的值。
dates+2==$dates[2]		//相同的地址
*(dates+2)==dates[2]	//相同的值 
  1. 指针加一,指针的值递增它所指向类型的大小

数组和指针的关系:

//定义a[n]的意思是*(a+n),可以认为*(a+n)的意思是“到内存a的位置,然后移动n个单元,检索存储在那里的值
*(dates+2) //dates第3个元素的值
*dates+2   //dates第1个元素的值加2 

标签:case,dates,语言,mask,break,数组,printf,指针
From: https://www.cnblogs.com/ninnne/p/17103072.html

相关文章