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

C語言一看就懂的指針與結(jié)構(gòu)體介紹

 更新時(shí)間:2022年04月25日 09:07:20   作者:王小王-123  
指針提供了對(duì)地址操作的一種方法,因此,使用指針可使得C語言能夠更高效地實(shí)現(xiàn)對(duì)計(jì)算機(jī)底層硬件的操作。另外,通過指針可以更便捷地操作數(shù)組。C數(shù)組允許定義可存儲(chǔ)相同類型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是C編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許您存儲(chǔ)不同類型的數(shù)據(jù)項(xiàng)

指針

指針是C語言或者是c++里面最讓人頭疼的內(nèi)容之一,正所謂指針在手,可以任指天下,這里只是簡單的介紹指針的一些概念,后期我們將會(huì)深入剖析指針的基本原理。

注意:一個(gè)漢字占2個(gè)字節(jié)!

首先我們需要認(rèn)識(shí)一下內(nèi)存這個(gè)基本概念:

內(nèi)存是電腦上特別重要的存儲(chǔ)器,計(jì)算機(jī)中程序的運(yùn)行都是在內(nèi)存中進(jìn)行的,為了有效的使用內(nèi)存,就把內(nèi)存劃分成一個(gè)個(gè)小的內(nèi)存單元,每個(gè)內(nèi)存單元的大小是1個(gè)字節(jié),為了能夠有效的訪問到內(nèi)存中的每個(gè)單元,就把內(nèi)存單元進(jìn)行了編號(hào),這些編號(hào)被稱為內(nèi)存單元的地址。

#include<stdio.h>
int main()
{
	int num = 10;//num要在內(nèi)存中開辟空間
	&num;// 取出num的地址,地址也稱為指針,注意這里num是一個(gè)整型變量,4個(gè)字節(jié),每個(gè)字節(jié)都有地址
	//但是取出的是第一個(gè)字節(jié)的地址(較小的地址)
	printf("%p\n\n", &num);//%p是以地址的形式進(jìn)行打印
	int* p = &num;
	*p = 20;//p是用來存放地址的,p是一個(gè)指針變量,先解引用在進(jìn)行賦值
	printf("%d\n", *p);//對(duì)P指針進(jìn)行解引用,最終打印出變量的結(jié)果
	return 0;
}

總而言之,第一次認(rèn)識(shí)指針,就應(yīng)該有這樣一個(gè)認(rèn)識(shí),定義指針需要使用 *,然后使用 & 對(duì)其進(jìn)行去地址,將其存放到指針當(dāng)中,那么最后需要對(duì)其指針進(jìn)行解引用那么就需要再一次使用 *

變量是創(chuàng)建內(nèi)存中的(在內(nèi)存中分配空間的),每個(gè)內(nèi)存單元都有地址,所以變量也是有地址的。

指針大小在32位平臺(tái)占4個(gè)字節(jié),64位平臺(tái)占8個(gè)字節(jié)

注意編譯器上X86代表32位,X64代表64位

#include <stdio.h>
int main()
{
	char ch = 'w';
	char* pc = &ch;
	*pc = 'q';
	printf("%c\n", ch);
	return 0;
}

字符類型的指針

#include <stdio.h>
//指針變量的大小取決于地址的大小
//32位平臺(tái)下地址是32個(gè)bit位(即4個(gè)字節(jié))
//64位平臺(tái)下地址是64個(gè)bit位(即8個(gè)字節(jié))
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}

這里只是對(duì)指針進(jìn)行一個(gè)簡單的了解,知道如何創(chuàng)建指針和對(duì)其進(jìn)行簡單的操作即可

結(jié)構(gòu)體

結(jié)構(gòu)體是C語言中特別重要的知識(shí)點(diǎn),結(jié)構(gòu)體使得C語言有能力描述復(fù)雜類型。

比如說:我們有一個(gè)表格需要進(jìn)行存儲(chǔ),那么就會(huì)使用結(jié)構(gòu)體進(jìn)行存儲(chǔ)

比如描述學(xué)生,學(xué)生包含: 名字+年齡+性別+學(xué)號(hào) 這幾項(xiàng)信息。

這里只能使用結(jié)構(gòu)體來描述了。

struct Stu
{
	char name[20];//名字
	int age; //年齡
	char sex[5]; //性別
	char id[15]; //學(xué)號(hào)
};
#include <stdio.h>
int main()
{
	// 打印結(jié)構(gòu)體信息
	struct Stu s = { "張三", 20, "男", "20180101" };
	//.為結(jié)構(gòu)成員訪問操作符
	printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
	//->操作符
	struct Stu* ps = &s;
	printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps -> id);
	return 0;
}

首先定義一個(gè)結(jié)構(gòu)體,然后對(duì)其結(jié)構(gòu)體分配信息,可以使用.操作符和->操作符進(jìn)行對(duì)其數(shù)據(jù)進(jìn)行讀取使用,那么在使用->的時(shí)候,需要對(duì)其結(jié)構(gòu)體實(shí)例進(jìn)行去地址,定義一個(gè)結(jié)構(gòu)體指針,這樣我們可以通過取地址的方法快速的獲取信息!

到此這篇關(guān)于C語言一看就懂的指針與結(jié)構(gòu)體介紹的文章就介紹到這了,更多相關(guān)C語言指針與結(jié)構(gòu)體內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++與C語言常用的語法對(duì)比

    C++與C語言常用的語法對(duì)比

    這篇文章主要介紹了C++與C語言常用的語法對(duì)比,文章基于c++和C語言的相關(guān)資料展開兩者的語法相互對(duì)比,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-04-04
  • 詳解c++11新特性之模板的改進(jìn)

    詳解c++11新特性之模板的改進(jìn)

    這篇文章主要介紹了詳解c++11新特性之模板的改進(jìn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux下C語言的幾道經(jīng)典面試題小結(jié)(分享)

    Linux下C語言的幾道經(jīng)典面試題小結(jié)(分享)

    下面小編就為大家?guī)硪黄狶inux下C語言的幾道經(jīng)典面試題小結(jié)(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解

    C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解

    這篇文章主要介紹了C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-08-08
  • C語言實(shí)現(xiàn)掃雷游戲及其優(yōu)化

    C語言實(shí)現(xiàn)掃雷游戲及其優(yōu)化

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)掃雷游戲及其優(yōu)化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析

    C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析

    這篇文章主要介紹了C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析,有助于讀者更好的理解文本文件與二進(jìn)制文件的原理,需要的朋友可以參考下
    2014-07-07
  • C語言 詳解字符串基礎(chǔ)

    C語言 詳解字符串基礎(chǔ)

    在 C 語言中,字符串實(shí)際上是使用空字符 \0 結(jié)尾的一維字符數(shù)組。因此,\0 是用于標(biāo)記字符串的結(jié)束??兆址∟ull character)又稱結(jié)束符,縮寫 NUL,是一個(gè)數(shù)值為 0 的控制字符,\0 是轉(zhuǎn)義字符,意思是告訴編譯器,這不是字符 0,而是空字符
    2022-04-04
  • C++常量詳解一(常量指針與常量引用的初始化)

    C++常量詳解一(常量指針與常量引用的初始化)

    這篇文章主要介紹了C++常量詳解一(常量指針與常量引用的初始化),需要的朋友可以參考下
    2017-06-06
  • linux下C語言中的mkdir函數(shù)與rmdir函數(shù)

    linux下C語言中的mkdir函數(shù)與rmdir函數(shù)

    以下是對(duì)C語言中的mkdir函數(shù)與rmdir函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • C++從一個(gè)文件夾中讀出所有txt文件的方法示例

    C++從一個(gè)文件夾中讀出所有txt文件的方法示例

    這篇文章主要給大家介紹了關(guān)于C++從一個(gè)文件夾中讀出所有txt文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03

最新評(píng)論