欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言 深入淺出講解指針的使用

 更新時間:2022年03月29日 17:26:10   作者:Fighting陽!  
指針是C語言中一個非常重要的概念,也是C語言的特色之一。使用指針可以對復(fù)雜數(shù)據(jù)進(jìn)行處理,能對計(jì)算機(jī)的內(nèi)存分配進(jìn)行控制,在函數(shù)調(diào)用中使用指針還可以返回多個值

一、利用指針倒序字符串

void _reversal(char* left, char* right)
{
  while (left < right)
  {
  	char tmp = *left;
  	*left = *right;
  	*right = tmp;
  	left++;
  	right--;
  }
}

通過上述代碼不難看出,left與right分別代表一個字符數(shù)組的首端和尾端,通過中間變量 tmp進(jìn)行首尾交換,left++中的left是char*類型,同時也可以看成為一維數(shù)組left[ i++],因此,移動的原理就是通過++移向下一個元素位置所在的地址right同理可得是移向上一個元素位置所在的地址。

二、題目實(shí)例

對于一個較大的整數(shù) N(1<=N<=2,000,000,000)

比如 980364535,我們常常需要一位一位數(shù)這個數(shù)字是幾位數(shù),但是如果在這個數(shù) 字每三位加一個逗號,它會變得更加易于朗讀。因此,這個數(shù)字加上逗號成如下的 模樣:980,364,535請寫一個程序幫她完成這件事情

輸入描述:

一行一個整數(shù) N

輸出描述:

一行一個字符串表示添加完逗號的結(jié)果

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
void _reversal(char* left, char* right)
{
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
int main()
{
	char arr1[2000] = { 0 };
	gets_s(arr1);
	int len = strlen(arr1);
	//翻轉(zhuǎn)字符串
	_reversal(arr1, arr1 + len - 1);
	char arr2[2000] = { 0 };
	char* pr1 = arr1;
	char* pr2 = arr2;
	int i = 0;
	while (i <= len / 3 + 1)
	{
		pr2[0] = pr1[0];
		pr2[1] = pr1[1];
		pr2[2] = pr1[2];
		pr2[3] = ',';
		pr1 += 3;
		pr2 += 4;
		i++;
	}
	int len1 = strlen(arr2);
	//翻轉(zhuǎn)字符串
	_reversal(arr2, arr2 + len1 - 1);
	if (arr2[0] == ',')
	{
		char* arr3 = arr2 + 1;
		printf("%s", arr3);
	}
	else
	{
		printf("%s", arr2);
	}
	return 0;
}

就本題而言,為什么我們在插入的時候需要進(jìn)行倒序呢,通過觀察我們發(fā)現(xiàn),插入的方式是從個位開始的,因此,從邏輯上我們需要將它進(jìn)行倒序來滿足這個基本原理,不然可能會出現(xiàn)最后兩個數(shù)(或者是一個數(shù))前面會有逗號產(chǎn)生,這是規(guī)則不允許的。

三、總結(jié)

對于這個題本身而言,方法不止一種,通過這道題的解法,目的就是可以 更好的理解通過指針如何逆序字符串加深對指針的了解,希望對大家有所 幫助,同時也希望小伙伴們指出不足之處,相互改進(jìn),共同進(jìn)步。

到此這篇關(guān)于C語言 深入淺出講解指針的使用的文章就介紹到這了,更多相關(guān)C語言 指針的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言重難點(diǎn)之內(nèi)存對齊和位段

    C語言重難點(diǎn)之內(nèi)存對齊和位段

    這篇文章主要介紹了C語言重難點(diǎn)之內(nèi)存對齊和位段,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)中堆排序的分析總結(jié)

    C語言數(shù)據(jù)結(jié)構(gòu)中堆排序的分析總結(jié)

    堆是計(jì)算機(jī)科學(xué)中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱,通常是一個可以被看做一棵完全二叉樹的數(shù)組對象。而堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。本文將通過圖片詳細(xì)介紹堆排序,需要的可以參考一下
    2022-04-04
  • C語言實(shí)現(xiàn)三子棋程序

    C語言實(shí)現(xiàn)三子棋程序

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)三子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    眾所周知,在調(diào)試、跟蹤和執(zhí)行應(yīng)用程序的過程中,程序的日志能為這些工作提供大量有價(jià)值的運(yùn)行信息。因此,程序的日志對應(yīng)用程序的運(yùn)行、維護(hù)至關(guān)重要
    2013-05-05
  • C++基于LINUX的文件操作

    C++基于LINUX的文件操作

    這篇文章主要為大家介紹了C++基于LINUX的文件操作示例知識擴(kuò)充,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C語言實(shí)現(xiàn)簡單通訊錄功能

    C語言實(shí)現(xiàn)簡單通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • OpenMP深入剖析reduction子句教程

    OpenMP深入剖析reduction子句教程

    這篇文章主要為大家介紹了OpenMP深入剖析reduction子句教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • c++友元函數(shù)與友元類的深入解析

    c++友元函數(shù)與友元類的深入解析

    友元函數(shù)的特點(diǎn)是能夠訪問類中的私有成員的非成員函數(shù)。友元函數(shù)從語法上看,它與普通函數(shù)一樣,即在定義上和調(diào)用上與普通函數(shù)一樣
    2013-07-07
  • C語言字符串與字符數(shù)組面試題中最易錯考點(diǎn)詳解

    C語言字符串與字符數(shù)組面試題中最易錯考點(diǎn)詳解

    這篇文章主要介紹了C語言字符串與字符數(shù)組面試題中最易錯考點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • C語言中scanf函數(shù)與空格回車的用法說明

    C語言中scanf函數(shù)與空格回車的用法說明

    這篇文章主要介紹了C語言中scanf函數(shù)與空格回車的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論